|
LLVM
4.0.0
|
The LoopVectorize Pass. More...
#include <LoopVectorize.h>
Public Member Functions | |
| PreservedAnalyses | run (Function &F, FunctionAnalysisManager &AM) |
| 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 | processLoop (Loop *L) |
Public Attributes | |
| bool | DisableUnrolling = false |
| bool | AlwaysVectorize = true |
| If true, consider all loops for vectorization. More... | |
| 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 |
| BlockFrequency | ColdEntryFreq |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< LoopVectorizePass > | |
| static StringRef | name () |
| Gets the name of the pass we are mixed into. More... | |
The LoopVectorize Pass.
Definition at line 71 of file LoopVectorize.h.
Definition at line 7348 of file LoopVectorize.cpp.
References AddRuntimeUnrollDisableMetaData(), assert(), llvm::AMDGPUISD::BFI, createMissedAnalysis(), llvm::dbgs(), DEBUG, llvm::OptimizationRemarkEmitter::emit(), llvm::LoopBase< N, M >::empty(), llvm::LoopBase< N, M >::getHeader(), llvm::LoopBase< N, M >::getLoopPreheader(), llvm::Loop::getStartLoc(), llvm::TargetTransformInfo::isFPVectorizationPotentiallyUnsafe(), L, LoopVectorizeWithBlockFrequency, LV_NAME, TinyTripCountVectorThreshold, VectorizationFactor, and llvm::verifyFunction().
| PreservedAnalyses LoopVectorizePass::run | ( | Function & | F, |
| FunctionAnalysisManager & | AM | ||
| ) |
Definition at line 7645 of file LoopVectorize.cpp.
References llvm::PreservedAnalyses::all(), llvm::AMDGPUISD::BFI, F, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), L, llvm::PreservedAnalyses::preserve(), and runImpl().
| bool LoopVectorizePass::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 | ||
| ) |
Definition at line 7590 of file LoopVectorize.cpp.
References llvm::AMDGPUISD::BFI, llvm::SmallVectorBase::empty(), llvm::TargetTransformInfo::getMaxInterleaveFactor(), llvm::TargetTransformInfo::getNumberOfRegisters(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateCommon< T >::size().
| AliasAnalysis* llvm::LoopVectorizePass::AA |
Definition at line 85 of file LoopVectorize.h.
| AssumptionCache* llvm::LoopVectorizePass::AC |
Definition at line 86 of file LoopVectorize.h.
If true, consider all loops for vectorization.
If false, only loops that explicitly request vectorization are considered.
Definition at line 76 of file LoopVectorize.h.
| BlockFrequencyInfo* llvm::LoopVectorizePass::BFI |
Definition at line 82 of file LoopVectorize.h.
| BlockFrequency llvm::LoopVectorizePass::ColdEntryFreq |
Definition at line 90 of file LoopVectorize.h.
| DemandedBits* llvm::LoopVectorizePass::DB |
Definition at line 84 of file LoopVectorize.h.
Definition at line 72 of file LoopVectorize.h.
| DominatorTree* llvm::LoopVectorizePass::DT |
Definition at line 81 of file LoopVectorize.h.
| std::function<const LoopAccessInfo &(Loop &)>* llvm::LoopVectorizePass::GetLAA |
Definition at line 87 of file LoopVectorize.h.
| LoopInfo* llvm::LoopVectorizePass::LI |
Definition at line 79 of file LoopVectorize.h.
| OptimizationRemarkEmitter* llvm::LoopVectorizePass::ORE |
Definition at line 88 of file LoopVectorize.h.
| ScalarEvolution* llvm::LoopVectorizePass::SE |
Definition at line 78 of file LoopVectorize.h.
| TargetLibraryInfo* llvm::LoopVectorizePass::TLI |
Definition at line 83 of file LoopVectorize.h.
| TargetTransformInfo* llvm::LoopVectorizePass::TTI |
Definition at line 80 of file LoopVectorize.h.
1.8.6