diff options
-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 b2768d6123..f07a85f39c 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 5a14e8accd..4ffd01b75a 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"); |