Go to the documentation of this file.
14 #ifndef LLVM_TRANSFORMS_VECTORIZE_H
15 #define LLVM_TRANSFORMS_VECTORIZE_H
113 bool VectorizeOnlyWhenForced);
bool VectorizeBools
Vectorize boolean values.
bool FastDep
Use a fast instruction dependency analysis.
This is an optimization pass for GlobalISel generic memory operations.
print lazy value Lazy Value Info Printer Pass
bool VectorizeInts
Vectorize integer values.
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
unsigned MaxInsts
The maximum number of pairable instructions per group.
unsigned ReqChainDepth
The required chain depth for vectorization.
Pass * createVectorCombinePass()
bool NoMemOpBoost
Don't boost the chain-depth contribution of loads and stores.
bool VectorizeSelect
Vectorize select instructions.
bool VectorizeFloats
Vectorize floating-point values.
bool AlignedOnly
Only generate aligned loads and stores.
LLVM Basic Block Representation.
Pass * createSLPVectorizerPass()
unsigned MaxPairs
The maximum number of candidate instruction pairs per group.
unsigned VectorBits
The size of the native vector registers.
(vector float) vec_cmpeq(*A, *B) C
unsigned SearchLimit
The maximum search distance for instruction pairs.
Pass * createLoadStoreVectorizerPass()
Create a legacy pass manager instance of the LoadStoreVectorizer pass.
unsigned MaxCandPairsForCycleCheck
The maximum number of candidate pairs with which to use a full cycle check.
bool VectorizeMath
Vectorize floating-point math intrinsics.
bool VectorizePointers
Vectorize pointer values.
VectorizeConfig()
Initialize the VectorizeConfig from command line options.
bool vectorizeBasicBlock(Pass *P, BasicBlock &BB, const VectorizeConfig &C=VectorizeConfig())
Vectorize the BasicBlock.
bool VectorizeCasts
Vectorize casting (conversion) operations.
bool VectorizeMemOps
Vectorize loads and stores.
bool VectorizeBitManipulations
Vectorize bit intrinsics.
bool Pow2LenOnly
Don't try to form odd-length vectors.
@ BasicBlock
Various leaf nodes.
bool SplatBreaksChain
Replicating one element to a pair breaks the chain.
bool VectorizeGEP
Vectorize getelementptr instructions.
bool VectorizeCmp
Vectorize comparison instructions.
bool VectorizeFMA
Vectorize the fused-multiply-add intrinsic.
unsigned MaxIter
The maximum number of pairing iterations.
Pass interface - Implemented by all 'passes'.
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
Pass * createLoopVectorizePass()