[PATCH] D44985: Remove initializer for CUDA shared varirable
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 28 14:38:42 PDT 2018
rjmccall added a comment.
In https://reviews.llvm.org/D44985#1050674, @yaxunl wrote:
> In https://reviews.llvm.org/D44985#1050670, @rjmccall wrote:
>
> > What exactly are you trying to express here? Are you just trying to make these external declarations when compiling for the device because `__shared__` variables are actually defined on the host? That should be handled by the frontend by setting up the AST so that these declarations are not definitions.
>
>
> No. These variables are not like external symbols defined on the host. They behave like global variables in the kernel code but never initialized. Currently no targets are able to initialize them and it is users' responsibility to initialize them explicitly.
>
> Giving them an initial value will cause error in some backends since they cannot handle them, therefore put undef as initializer.
So undef is being used as a special marker to the backends that it's okay not to try to initialize these variables?
https://reviews.llvm.org/D44985
More information about the cfe-commits
mailing list