Add TargetPassConfig to the PassManager for use inside passes
authorAndrew Trick <atrick@apple.com>
Mon, 6 Feb 2012 22:51:15 +0000 (22:51 +0000)
committerAndrew Trick <atrick@apple.com>
Mon, 6 Feb 2012 22:51:15 +0000 (22:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149926 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LLVMTargetMachine.cpp
lib/Target/PTX/PTXTargetMachine.cpp

index b2768d61234deb3a7fb55430057c2551ada2aca8..f07a85f39c27e43557ad6775f2cfeff31a5d8abd 100644 (file)
@@ -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;
 }
 
index 5a14e8accdd4641ad1fe50cd7ff4b4c414fa5a23..4ffd01b75a63da3ec9e0fa04a71b9145a343b426 100644 (file)
@@ -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");