15 #ifndef LLVM_TRANSFORMS_IPO_PASSMANAGERBUILDER_H
16 #define LLVM_TRANSFORMS_IPO_PASSMANAGERBUILDER_H
22 class TargetLibraryInfoImpl;
28 class PassManagerBase;
128 std::vector<std::pair<ExtensionPointTy, ExtensionFn> > Extensions;
Pass interface - Implemented by all 'passes'.
Registers a function for adding a standard set of passes.
PassManagerBuilder - This class is used to set up a standard optimization sequence for languages like...
EP_ScalarOptimizerLate - This extension point allows adding optimization passes after most of the mai...
Implementation of the target library information.
Pass * Inliner
Inliner - Specifies the inliner to use.
static void addGlobalExtension(ExtensionPointTy Ty, ExtensionFn Fn)
Adds an extension that will be used by all PassManagerBuilder instances.
void populateLTOPassManager(legacy::PassManagerBase &PM)
EP_ModuleOptimizerEarly - This extension point allows adding passes just before the main module-level...
EP_EnabledOnOptLevel0 - This extension point allows adding passes that should not be disabled by O0 o...
unsigned OptLevel
The Optimization Level - Specify the basic optimization level.
void populateModulePassManager(legacy::PassManagerBase &MPM)
populateModulePassManager - This sets up the primary pass manager.
TargetLibraryInfoImpl * LibraryInfo
LibraryInfo - Specifies information about the runtime library for the optimizer.
void(* ExtensionFn)(const PassManagerBuilder &Builder, legacy::PassManagerBase &PM)
Extensions are passed the builder itself (so they can see how it is configured) as well as the pass m...
void populateFunctionPassManager(legacy::FunctionPassManager &FPM)
populateFunctionPassManager - This fills in the function pass manager, which is expected to be run on...
FunctionPassManager manages FunctionPasses and BasicBlockPassManagers.
EP_OptimizerLast – This extension point allows adding passes that run after everything else...
EP_EarlyAsPossible - This extension point allows adding passes before any other transformations, allowing them to see the code as it is coming out of the frontend.
PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having ...
PassManager< Function > FunctionPassManager
Convenience typedef for a pass manager over functions.
EP_Peephole - This extension point allows adding passes that perform peephole optimizations similar t...
unsigned SizeLevel
SizeLevel - How much we're optimizing for size.
RegisterStandardPasses(PassManagerBuilder::ExtensionPointTy Ty, PassManagerBuilder::ExtensionFn Fn)
void addExtension(ExtensionPointTy Ty, ExtensionFn Fn)
EP_LoopOptimizerEnd - This extension point allows adding loop passes to the end of the loop optimizer...