================
@@ -12222,8 +12222,17 @@ bool Sema::CheckFunctionDeclaration(Scope *S, 
FunctionDecl *NewFD,
             << NewFD;
     }
 
-    if (!Redeclaration && LangOpts.CUDA)
+    if (!Redeclaration && LangOpts.CUDA) {
----------------
Artem-B wrote:

I deliberately decided *not* to do that.
`__grid_constant__` is an optimization hint, and LLVM *will* ignore it if the 
attribute is present, but we're targeting an older GPU, or generating an older 
PTX version. Considering that using the attribute with pre-sm70 GPU does no 
harm I do not think it should be an error.

NVCC's insistence on erroring out if the attribute is used during compilation 
for an older GPU is  unnecessaryand it makes the attribute a pain to use in 
practice. Considering that it's not uncommon to compile the same source code 
for multiple GPUs, including the older ones, we'll have to resort to 
preprocessor tweaks and undef the attribute way, if we want to give compiler a 
hint that we want to avoid copying some arguments. 



https://github.com/llvm/llvm-project/pull/114589
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to