Go to the documentation of this file.
16 #ifndef LLVM_IR_LEGACYPASSMANAGER_H
17 #define LLVM_IR_LEGACYPASSMANAGER_H
33 class PassManagerImpl;
34 class FunctionPassManagerImpl;
This is an optimization pass for GlobalISel generic memory operations.
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
print lazy value Lazy Value Info Printer Pass
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
FunctionPassManager(Module *M)
FunctionPassManager ctor - This initializes the pass manager.
FunctionPassManagerImpl manages FPPassManagers.
#define DEFINE_STDCXX_CONVERSION_FUNCTIONS(ty, ref)
PassManager()
Create new pass manager.
bool doFinalization()
doFinalization - Run all of the finalizers for the function passes.
bool debugPassSpecified()
virtual ~PassManagerBase()
virtual void add(Pass *P)=0
Add a pass to the queue of passes to run.
bool doInitialization()
doInitialization - Run all of the initializers for the function passes.
A Module instance is used to store all the information related to an LLVM module.
void add(Pass *P) override
Add a pass to the queue of passes to run.
struct LLVMOpaquePassManager * LLVMPassManagerRef
Machine Check Debug Module
bool run(Function &F)
run - Execute all of the passes scheduled for execution.
PassManager manages ModulePassManagers.
void add(Pass *P) override
Add a pass to the queue of passes to run.
~FunctionPassManager() override
Pass interface - Implemented by all 'passes'.
PassManagerImpl manages MPPassManagers.
FunctionPassManager manages FunctionPasses.
PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having ...
bool run(Module &M)
run - Execute all of the passes scheduled for execution.