Add facility for pre-RA passes

llvm-svn: 50165
This commit is contained in:
Anton Korobeynikov 2008-04-23 18:22:28 +00:00
parent 41334635cc
commit 7e859dd7f0
2 changed files with 12 additions and 1 deletions

View File

@ -280,7 +280,14 @@ public:
virtual bool addInstSelector(PassManagerBase &PM, bool Fast) {
return true;
}
/// addPreRegAllocPasses - This method may be implemented by targets that want
/// to run passes immediately before register allocation. This should return
/// true if -print-machineinstrs should print after these passes.
virtual bool addPreRegAlloc(PassManagerBase &PM, bool Fast) {
return false;
}
/// addPostRegAllocPasses - This method may be implemented by targets that
/// want to run passes after register allocation but before prolog-epilog
/// insertion. This should return true if -print-machineinstrs should print

View File

@ -94,6 +94,10 @@ LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
if (EnableSinking)
PM.add(createMachineSinkingPass());
// Run pre-ra passes.
if (addPreRegAlloc(PM, Fast) && PrintMachineCode)
PM.add(createMachineFunctionPrinterPass(cerr));
// Perform register allocation to convert to a concrete x86 representation
PM.add(createRegisterAllocator());