summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-02-06 22:51:15 +0000
committerAndrew Trick <atrick@apple.com>2012-02-06 22:51:15 +0000
commit6939fde29cdd04cec9f440a9351c1c4340850e20 (patch)
tree47e045e324286e154bea1bfd2ca9b01c1921316a /lib
parent0ca032b03dc3a862670461651b3a950d1f14991b (diff)
downloadllvm-6939fde29cdd04cec9f440a9351c1c4340850e20.tar.gz
llvm-6939fde29cdd04cec9f440a9351c1c4340850e20.tar.bz2
llvm-6939fde29cdd04cec9f440a9351c1c4340850e20.tar.xz
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
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/LLVMTargetMachine.cpp4
-rw-r--r--lib/Target/PTX/PTXTargetMachine.cpp8
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");