33 cl::desc(
"Run the Loop vectorization passes"));
37 cl::desc(
"Run the vectorization pasess late in the pass "
38 "pipeline (after the inliner)"));
42 cl::desc(
"Run the SLP vectorization passes"));
46 cl::desc(
"Run the BB vectorization passes"));
51 cl::desc(
"Run GVN instead of Early CSE after vectorization passes"));
55 cl::desc(
"Enable the new, experimental SROA pass"));
59 cl::desc(
"Run the loop rerolling pass"));
91 Extensions.push_back(std::make_pair(Ty, Fn));
94 void PassManagerBuilder::addExtensionsToPM(ExtensionPointTy ETy,
95 PassManagerBase &PM)
const {
99 for (
unsigned i = 0, e = Extensions.size(); i != e; ++i)
100 if (Extensions[i].first == ETy)
101 Extensions[i].second(*
this, PM);
105 PassManagerBuilder::addInitialAliasAnalysisPasses(PassManagerBase &PM)
const {
121 addInitialAliasAnalysisPasses(FPM);
154 addInitialAliasAnalysisPasses(MPM);
279 bool DisableGVNLoadPRE) {
281 addInitialAliasAnalysisPasses(PM);
385 unsigned SizeLevel) {
429 PassManagerBase *MPM =
unwrap(PM);
438 PassManagerBase *LPM =
unwrap(PM);
FunctionPass * createGVNPass(bool NoLoads=false)
Pass * createLoopRerollPass()
Pass * createLoopVectorizePass(bool NoUnrolling=false)
static cl::opt< bool > RunBBVectorization("vectorize-slp-aggressive", cl::Hidden, cl::desc("Run the BB vectorization passes"))
FunctionPass * createScalarReplAggregatesPass(signed Threshold=-1, bool UseDomTree=true, signed StructMemberThreshold=-1, signed ArrayElementThreshold=-1, signed ScalarLoadThreshold=-1)
ModulePass * createIPSCCPPass()
void populateFunctionPassManager(FunctionPassManager &FPM)
LLVMContext ** unwrap(LLVMContextRef *Tys)
Pass * createLoopRotatePass()
Pass * createFunctionAttrsPass()
static cl::opt< bool > RunLoopVectorization("vectorize-loops", cl::Hidden, cl::desc("Run the Loop vectorization passes"))
static void addGlobalExtension(ExtensionPointTy Ty, ExtensionFn Fn)
FunctionPass * createSROAPass(bool RequiresDomTree=true)
FunctionPass * createReassociatePass()
Pass * createArgumentPromotionPass(unsigned maxElements=3)
Pass * createGlobalsModRefPass()
Pass * createLoopUnswitchPass(bool OptimizeForSize=false)
static cl::opt< bool > UseGVNAfterVectorization("use-gvn-after-vectorization", cl::init(false), cl::Hidden, cl::desc("Run GVN instead of Early CSE after vectorization passes"))
TargetLibraryInfo * LibraryInfo
void populateLTOPassManager(PassManagerBase &PM, bool Internalize, bool RunInliner, bool DisableGVNLoadPRE=false)
ImmutablePass * createBasicAliasAnalysisPass()
static ManagedStatic< SmallVector< std::pair< PassManagerBuilder::ExtensionPointTy, PassManagerBuilder::ExtensionFn >, 8 > > GlobalExtensions
Set of global extensions, automatically added as part of the standard set.
static cl::opt< bool > RunSLPVectorization("vectorize-slp", cl::Hidden, cl::desc("Run the SLP vectorization passes"))
Pass * createLoopUnrollPass(int Threshold=-1, int Count=-1, int AllowPartial=-1, int Runtime=-1)
FunctionPass * createInstructionCombiningPass()
ModulePass * createGlobalDCEPass()
static cl::opt< bool > UseNewSROA("use-new-sroa", cl::init(true), cl::Hidden, cl::desc("Enable the new, experimental SROA pass"))
Pass * createCorrelatedValuePropagationPass()
initializer< Ty > init(const Ty &Val)
ImmutablePass * createTypeBasedAliasAnalysisPass()
FunctionPass * createJumpThreadingPass()
FunctionPass * createTailCallEliminationPass()
ModulePass * createDeadArgEliminationPass()
ModulePass * createBarrierNoopPass()
FunctionPass * createMemCpyOptPass()
ModulePass * createConstantMergePass()
FunctionPass * createEarlyCSEPass()
ModulePass * createGlobalOptimizerPass()
FunctionPass * createDeadStoreEliminationPass()
LLVMContextRef * wrap(const LLVMContext **Tys)
Pass * createLoopDeletionPass()
static cl::opt< bool > LateVectorization("late-vectorize", cl::init(true), cl::Hidden, cl::desc("Run the vectorization pasess late in the pass ""pipeline (after the inliner)"))
BasicBlockPass * createBBVectorizePass(const VectorizeConfig &C=VectorizeConfig())
FunctionPass * createCFGSimplificationPass()
Pass * createLoopIdiomPass()
FunctionPass * createSCCPPass()
FunctionPass * createAggressiveDCEPass()
struct LLVMOpaquePassManager * LLVMPassManagerRef
ModulePass * createInternalizePass(ArrayRef< const char * > ExportList)
Pass * createSLPVectorizerPass()
void(* ExtensionFn)(const PassManagerBuilder &Builder, PassManagerBase &PM)
static int const Threshold
Pass * createFunctionInliningPass()
Pass * createPruneEHPass()
LLVM Value Representation.
ModulePass * createStripDeadPrototypesPass()
void addExtension(ExtensionPointTy Ty, ExtensionFn Fn)
void populateModulePassManager(PassManagerBase &MPM)
populateModulePassManager - This sets up the primary pass manager.
Pass * createIndVarSimplifyPass()
FunctionPass * createLowerExpectIntrinsicPass()
static cl::opt< bool > RunLoopRerolling("reroll-loops", cl::Hidden, cl::desc("Run the loop rerolling pass"))