19 #ifndef LLVM_TRANSFORMS_VECTORIZE_SLPVECTORIZER_H 20 #define LLVM_TRANSFORMS_VECTORIZE_SLPVECTORIZER_H 32 class AssumptionCache;
39 class InsertElementInst;
40 class InsertValueInst;
43 class OptimizationRemarkEmitter;
45 class ScalarEvolution;
47 class TargetLibraryInfo;
48 class TargetTransformInfo;
102 int UserCost = 0,
bool AllowReorder =
false);
141 unsigned VecRegSize);
154 #endif // LLVM_TRANSFORMS_VECTORIZE_SLPVECTORIZER_H
A parsed version of the target data layout string in and methods for querying it. ...
This class is the base class for the comparison instructions.
static bool runImpl(Function &F, TargetLibraryInfo &TLI, DominatorTree &DT)
This is the entry point for all transforms.
This class represents lattice values for constants.
The main scalar evolution driver.
A cache of @llvm.assume calls within a function.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
A CRTP mix-in to automatically provide informational APIs needed for passes.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
This instruction inserts a single (scalar) element into a VectorType value.
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
A set of analyses that are preserved following a run of a transformation pass.
LLVM Basic Block Representation.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
Provides information about what library functions are available for the current target.
LLVM Value Representation.
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.
Bottom Up SLP Vectorizer.
This instruction inserts a struct field of array element value into an aggregate value.