57 #ifndef LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZE_H 58 #define LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZE_H 66 class AssumptionCache;
67 class BlockFrequencyInfo;
74 class OptimizationRemarkEmitter;
75 class ScalarEvolution;
76 class TargetLibraryInfo;
77 class TargetTransformInfo;
98 std::function<const LoopAccessInfo &(Loop &)> *
GetLAA;
116 #endif // LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZE_H
bool processLoop(Loop *L)
std::function< const LoopAccessInfo &(Loop &)> * GetLAA
This class represents lattice values for constants.
The main scalar evolution driver.
A cache of @llvm.assume calls within a function.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
A CRTP mix-in to automatically provide informational APIs needed for passes.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
bool runImpl(Function &F, ScalarEvolution &SE_, LoopInfo &LI_, TargetTransformInfo &TTI_, DominatorTree &DT_, BlockFrequencyInfo &BFI_, TargetLibraryInfo *TLI_, DemandedBits &DB_, AliasAnalysis &AA_, AssumptionCache &AC_, std::function< const LoopAccessInfo &(Loop &)> &GetLAA_, OptimizationRemarkEmitter &ORE)
bool InterleaveOnlyWhenForced
If false, consider all loops for interleaving.
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
A set of analyses that are preserved following a run of a transformation pass.
TargetTransformInfo * TTI
bool VectorizeOnlyWhenForced
If false, consider all loops for vectorization.
Provides information about what library functions are available for the current target.
Drive the analysis of memory accesses in the loop.
Represents a single loop in the control flow graph.
OptimizationRemarkEmitter * ORE
print Print MemDeps of function
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.