summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorJingyue Wu <jingyue@google.com>2015-08-22 05:40:26 +0000
committerJingyue Wu <jingyue@google.com>2015-08-22 05:40:26 +0000
commitfcec09866a12114cbcb2c0dd0457c36e83bd8d50 (patch)
tree5b6314a248d66adebee50c9f71d6351731a74e9c /llvm/lib/Target
parent4369a3f4ad5c3163229666c31654a6843af817ff (diff)
downloadbcm5719-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.cpp8
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()) + ")");
OpenPOWER on IntegriCloud