aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PTX
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-02-04 02:56:59 +0000
committerAndrew Trick <atrick@apple.com>2012-02-04 02:56:59 +0000
commit061efcfb3e79899493d857f49e50d09f29037e0a (patch)
tree2c7286ae42f7acfe928e0faff78562df968a237d /lib/Target/PTX
parentd5422654016b3ac7494db1d2ba16bd8febadb0a8 (diff)
downloadexternal_llvm-061efcfb3e79899493d857f49e50d09f29037e0a.zip
external_llvm-061efcfb3e79899493d857f49e50d09f29037e0a.tar.gz
external_llvm-061efcfb3e79899493d857f49e50d09f29037e0a.tar.bz2
TargetPassConfig: confine the MC configuration to TargetMachine.
Passes prior to instructon selection are now split into separate configurable stages. Header dependencies are simplified. The bulk of this diff is simply removal of the silly DisableVerify flags. Sorry for the target header churn. Attempting to stabilize them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149754 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PTX')
-rw-r--r--lib/Target/PTX/PTXTargetMachine.cpp17
-rw-r--r--lib/Target/PTX/PTXTargetMachine.h3
2 files changed, 12 insertions, 8 deletions
diff --git a/lib/Target/PTX/PTXTargetMachine.cpp b/lib/Target/PTX/PTXTargetMachine.cpp
index cf45c8f..5a14e8a 100644
--- a/lib/Target/PTX/PTXTargetMachine.cpp
+++ b/lib/Target/PTX/PTXTargetMachine.cpp
@@ -109,8 +109,8 @@ namespace {
/// PTX Code Generator Pass Configuration Options.
class PTXPassConfig : public TargetPassConfig {
public:
- PTXPassConfig(PTXTargetMachine *TM, PassManagerBase &PM, bool DisableVerifyFlag)
- : TargetPassConfig(TM, PM, DisableVerifyFlag) {}
+ PTXPassConfig(PTXTargetMachine *TM, PassManagerBase &PM)
+ : TargetPassConfig(TM, PM) {}
PTXTargetMachine &getPTXTargetMachine() const {
return getTM<PTXTargetMachine>();
@@ -122,9 +122,8 @@ public:
};
} // namespace
-TargetPassConfig *PTXTargetMachine::createPassConfig(PassManagerBase &PM,
- bool DisableVerify) {
- return new PTXPassConfig(this, PM, DisableVerify);
+TargetPassConfig *PTXTargetMachine::createPassConfig(PassManagerBase &PM) {
+ return new PTXPassConfig(this, PM);
}
bool PTXPassConfig::addInstSelector() {
@@ -146,7 +145,13 @@ bool PTXTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
// Add common CodeGen passes.
MCContext *Context = 0;
- OwningPtr<TargetPassConfig> PassConfig(createPassConfig(PM, DisableVerify));
+
+ // FIXME: soon this will be converted to use the exposed TargetPassConfig API.
+ OwningPtr<PTXPassConfig> PassConfig(
+ static_cast<PTXPassConfig*>(createPassConfig(PM)));
+
+ PassConfig->setDisableVerify(DisableVerify);
+
if (PassConfig->addCodeGenPasses(Context))
return true;
assert(Context != 0 && "Failed to get MCContext");
diff --git a/lib/Target/PTX/PTXTargetMachine.h b/lib/Target/PTX/PTXTargetMachine.h
index 3e99139..e1b7b0c 100644
--- a/lib/Target/PTX/PTXTargetMachine.h
+++ b/lib/Target/PTX/PTXTargetMachine.h
@@ -81,8 +81,7 @@ class PTXTargetMachine : public LLVMTargetMachine {
}
// Pass Pipeline Configuration
- virtual TargetPassConfig *createPassConfig(PassManagerBase &PM,
- bool DisableVerify);
+ virtual TargetPassConfig *createPassConfig(PassManagerBase &PM);
}; // class PTXTargetMachine