[llvm] [NVPTX] Add errors for incorrect CUDA addrpaces (PR #138706)

Artem Belevich via llvm-commits llvm-commits at lists.llvm.org
Tue May 6 16:36:01 PDT 2025


================
@@ -1399,19 +1399,27 @@ void NVPTXAsmPrinter::emitFunctionParamList(const Function *F, raw_ostream &O) {
       if (PTy) {
         O << "\t.param .u" << PTySizeInBits << " .ptr";
 
+        bool IsCUDA = static_cast<NVPTXTargetMachine &>(TM).getDrvInterface() ==
+                      NVPTX::CUDA;
         switch (PTy->getAddressSpace()) {
         default:
           break;
         case ADDRESS_SPACE_GLOBAL:
           O << " .global";
           break;
         case ADDRESS_SPACE_SHARED:
+          if (IsCUDA)
+            report_fatal_error(".shared ptr kernel args unsupported in CUDA.");
           O << " .shared";
           break;
         case ADDRESS_SPACE_CONST:
+          if (IsCUDA)
+            report_fatal_error(".const ptr kernel args unsupported in CUDA.");
----------------
Artem-B wrote:

While local/shared pointers have no meaning outside of thread/CTA. `.const` pointers do exist and can be passed around. 


https://github.com/llvm/llvm-project/pull/138706


More information about the llvm-commits mailing list