[PATCH] D12241: [CUDA] Change initializer for CUDA device code based on CUDA documentation.

Jingyue Wu via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 21 10:03:12 PDT 2015


jingyue added a comment.

Looks good in general.

> According to CUDA documentation, global variable with device,


global variables

> externally initialized. For shared variable, its value might be kept

>  by GPU Memory among different kernel invocation and it is not possible

>  to initialize it. So change shared variable it to undefined value.


Just say: __shared__ variables cannot have an initialization as part of their declaration. Whether being kept across invocations is undefined.


================
Comment at: lib/CodeGen/CodeGenModule.cpp:1998
@@ +1997,3 @@
+    if (InitExpr)
+      ErrorUnsupported(D, "static initializer");
+    Init = llvm::UndefValue::get(getTypes().ConvertType(ASTTy));
----------------
Then, this should be a hard error instead of an unsupported feature, right? ErrorUnsupported sounds like we want to support it later. 


http://reviews.llvm.org/D12241





More information about the llvm-commits mailing list