diff options
| author | Jingyue Wu <jingyue@google.com> | 2015-08-22 05:40:26 +0000 |
|---|---|---|
| committer | Jingyue Wu <jingyue@google.com> | 2015-08-22 05:40:26 +0000 |
| commit | fcec09866a12114cbcb2c0dd0457c36e83bd8d50 (patch) | |
| tree | 5b6314a248d66adebee50c9f71d6351731a74e9c /llvm/lib/Target | |
| parent | 4369a3f4ad5c3163229666c31654a6843af817ff (diff) | |
| download | bcm5719-llvm-fcec09866a12114cbcb2c0dd0457c36e83bd8d50.tar.gz bcm5719-llvm-fcec09866a12114cbcb2c0dd0457c36e83bd8d50.zip | |
[NVPTX] Allow undef value as global initializer
Summary:
__shared__ variable may now emit undef value as initializer, do not
throw error on that.
Test Plan: test/CodeGen/NVPTX/global-addrspace.ll
Patch by Xuetian Weng
Reviewers: jholewinski, tra, jingyue
Subscribers: llvm-commits, jholewinski
Differential Revision: http://reviews.llvm.org/D12242
llvm-svn: 245785
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp index ffdac61f44d..16afe3cbfb5 100644 --- a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp @@ -1183,9 +1183,11 @@ void NVPTXAsmPrinter::printModuleLevelGV(const GlobalVariable *GVar, printScalarConstant(Initializer, O); } } else { - // The frontend adds zero-initializer to variables that don't have an - // initial value, so skip warning for this case. - if (!GVar->getInitializer()->isNullValue()) { + // The frontend adds zero-initializer to device and constant variables + // that don't have an initial value, and UndefValue to shared + // variables, so skip warning for this case. + if (!GVar->getInitializer()->isNullValue() && + !isa<UndefValue>(GVar->getInitializer())) { report_fatal_error("initial value of '" + GVar->getName() + "' is not allowed in addrspace(" + Twine(PTy->getAddressSpace()) + ")"); |

