diff options
author | Eli Bendersky <eliben@google.com> | 2014-03-31 15:56:26 +0000 |
---|---|---|
committer | Eli Bendersky <eliben@google.com> | 2014-03-31 15:56:26 +0000 |
commit | 264cd4672d12a2c70f6a72dc0a9f03e91e7896b2 (patch) | |
tree | 7005279b2e6474067f1bc6c0c2383ddc0d7a9daa /llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp | |
parent | aba25399892c8ee5283ef67e7aa2fd9598e2f8d7 (diff) | |
download | bcm5719-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.cpp | 3 |
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()); } |