summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
diff options
context:
space:
mode:
authorEli Bendersky <eliben@google.com>2014-03-31 15:56:26 +0000
committerEli Bendersky <eliben@google.com>2014-03-31 15:56:26 +0000
commit264cd4672d12a2c70f6a72dc0a9f03e91e7896b2 (patch)
tree7005279b2e6474067f1bc6c0c2383ddc0d7a9daa /llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
parentaba25399892c8ee5283ef67e7aa2fd9598e2f8d7 (diff)
downloadbcm5719-llvm-264cd4672d12a2c70f6a72dc0a9f03e91e7896b2.tar.gz
bcm5719-llvm-264cd4672d12a2c70f6a72dc0a9f03e91e7896b2.zip
Fix for PR19099 - NVPTX produces invalid symbol names.
This is a more thorough fix for the issue than r203483. An IR pass will run before NVPTX codegen to make sure there are no invalid symbol names that can't be consumed by the ptxas assembler. llvm-svn: 205212
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
index c0009fa9432..7d7d79314c6 100644
--- a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
@@ -49,6 +49,7 @@ using namespace llvm;
namespace llvm {
void initializeNVVMReflectPass(PassRegistry&);
void initializeGenericToNVVMPass(PassRegistry&);
+void initializeNVPTXAssignValidGlobalNamesPass(PassRegistry&);
}
extern "C" void LLVMInitializeNVPTXTarget() {
@@ -60,6 +61,7 @@ extern "C" void LLVMInitializeNVPTXTarget() {
// but it's very NVPTX-specific.
initializeNVVMReflectPass(*PassRegistry::getPassRegistry());
initializeGenericToNVVMPass(*PassRegistry::getPassRegistry());
+ initializeNVPTXAssignValidGlobalNamesPass(*PassRegistry::getPassRegistry());
}
static std::string computeDataLayout(const NVPTXSubtarget &ST) {
@@ -139,6 +141,7 @@ void NVPTXPassConfig::addIRPasses() {
disablePass(&TailDuplicateID);
TargetPassConfig::addIRPasses();
+ addPass(createNVPTXAssignValidGlobalNamesPass());
addPass(createGenericToNVVMPass());
}
OpenPOWER on IntegriCloud