forked from OSchip/llvm-project
284ebe237f
Summary: According to CUDA documentation, global variables declared with __device__, __constant__ can be initialized from host code, so mark them as externally initialized. Because __shared__ variables cannot have an initialization as part of their declaration and since the value maybe kept across different kernel invocation, the value of __shared__ is effectively undefined instead of zero initialized. Wrongly using zero initializer may cause illegitimate optimization, e.g. removing unused __constant__ variable because it's not updated in the device code and the value is initialized with zero. Test Plan: test/CodeGenCUDA/address-spaces.cu Patch by Xuetian Weng Reviewers: jholewinski, eliben, tra, jingyue Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12241 llvm-svn: 245786 |
||
---|---|---|
.. | ||
Inputs | ||
address-spaces.cu | ||
cuda-builtin-vars.cu | ||
device-stub.cu | ||
filter-decl.cu | ||
host-device-calls-host.cu | ||
kernel-call.cu | ||
launch-bounds.cu | ||
llvm-used.cu | ||
ptx-kernels.cu |