diff options
author | Andrew Trick <atrick@apple.com> | 2012-02-06 22:51:15 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2012-02-06 22:51:15 +0000 |
commit | 6939fde29cdd04cec9f440a9351c1c4340850e20 (patch) | |
tree | 47e045e324286e154bea1bfd2ca9b01c1921316a | |
parent | 0ca032b03dc3a862670461651b3a950d1f14991b (diff) | |
download | external_llvm-6939fde29cdd04cec9f440a9351c1c4340850e20.zip external_llvm-6939fde29cdd04cec9f440a9351c1c4340850e20.tar.gz external_llvm-6939fde29cdd04cec9f440a9351c1c4340850e20.tar.bz2 |
Add TargetPassConfig to the PassManager for use inside passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149926 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/LLVMTargetMachine.cpp | 4 | ||||
-rw-r--r-- | lib/Target/PTX/PTXTargetMachine.cpp | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index b2768d6..f07a85f 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -116,6 +116,8 @@ static MCContext *addPassesToGenerateCode(LLVMTargetMachine *TM, // Set PassConfig options provided by TargetMachine. PassConfig->setDisableVerify(DisableVerify); + PM.add(PassConfig); + PassConfig->addIRPasses(); addPassesToHandleExceptions(TM, PM); @@ -145,8 +147,6 @@ static MCContext *addPassesToGenerateCode(LLVMTargetMachine *TM, PassConfig->addMachinePasses(); - delete PassConfig; - return Context; } diff --git a/lib/Target/PTX/PTXTargetMachine.cpp b/lib/Target/PTX/PTXTargetMachine.cpp index 5a14e8a..4ffd01b 100644 --- a/lib/Target/PTX/PTXTargetMachine.cpp +++ b/lib/Target/PTX/PTXTargetMachine.cpp @@ -105,7 +105,7 @@ PTX64TargetMachine::PTX64TargetMachine(const Target &T, StringRef TT, : PTXTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, true) { } -namespace { +namespace llvm { /// PTX Code Generator Pass Configuration Options. class PTXPassConfig : public TargetPassConfig { public: @@ -147,11 +147,13 @@ bool PTXTargetMachine::addPassesToEmitFile(PassManagerBase &PM, MCContext *Context = 0; // FIXME: soon this will be converted to use the exposed TargetPassConfig API. - OwningPtr<PTXPassConfig> PassConfig( - static_cast<PTXPassConfig*>(createPassConfig(PM))); + PTXPassConfig *PassConfig = + static_cast<PTXPassConfig*>(createPassConfig(PM)); PassConfig->setDisableVerify(DisableVerify); + PM.add(PassConfig); + if (PassConfig->addCodeGenPasses(Context)) return true; assert(Context != 0 && "Failed to get MCContext"); |