diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2010-04-07 18:18:42 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2010-04-07 18:18:42 +0000 |
| commit | f4c97dfd87d6514e7976bafa07b55aee3e3a81b5 (patch) | |
| tree | 5a793ff4cf74d0c9f1683209d4a2d53defc2329e | |
| parent | 67825e3b8bfb36b3e3b9a273b644a99dec1f227b (diff) | |
| download | external_llvm-f4c97dfd87d6514e7976bafa07b55aee3e3a81b5.zip external_llvm-f4c97dfd87d6514e7976bafa07b55aee3e3a81b5.tar.gz external_llvm-f4c97dfd87d6514e7976bafa07b55aee3e3a81b5.tar.bz2 | |
Add hook to insert late LLVM=>LLVM passes just before isel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100640 91177308-0d34-0410-b5e6-96231b3b80d8
| -rw-r--r-- | include/llvm/Target/TargetMachine.h | 13 | ||||
| -rw-r--r-- | lib/CodeGen/LLVMTargetMachine.cpp | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h index d1d665f..2f29de5 100644 --- a/include/llvm/Target/TargetMachine.h +++ b/include/llvm/Target/TargetMachine.h @@ -264,10 +264,15 @@ public: bool DisableVerify = true); /// Target-Independent Code Generator Pass Configuration Options. - - /// addInstSelector - This method should add any "last minute" LLVM->LLVM - /// passes, then install an instruction selector pass, which converts from - /// LLVM code to machine instructions. + + /// addPreISelPasses - This method should add any "last minute" LLVM->LLVM + /// passes (which are run just before instruction selector). + virtual bool addPreISel(PassManagerBase &, CodeGenOpt::Level) { + return true; + } + + /// addInstSelector - This method should install an instruction selector pass, + /// which converts from LLVM code to machine instructions. virtual bool addInstSelector(PassManagerBase &, CodeGenOpt::Level) { return true; } diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index ced6664..714ad73 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -268,6 +268,8 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM, PM.add(createStackProtectorPass(getTargetLowering())); + addPreISel(PM, OptLevel); + if (PrintISelInput) PM.add(createPrintFunctionPass("\n\n" "*** Final LLVM Code input to ISel ***\n", |
