================
@@ -982,8 +982,9 @@ void NVPTXDAGToDAGISel::SelectAddrSpaceCast(SDNode *N) {
     case ADDRESS_SPACE_SHARED:
       Opc = TM.is64Bit() ? NVPTX::cvta_shared_64 : NVPTX::cvta_shared;
       break;
-    case ADDRESS_SPACE_DSHARED:
-      Opc = TM.is64Bit() ? NVPTX::cvta_dshared_64 : NVPTX::cvta_dshared;
+    case ADDRESS_SPACE_SHARED_CLUSTER:
+      Opc = TM.is64Bit() ? NVPTX::cvta_shared_cluster_64
+                         : NVPTX::cvta_shared_cluster;
----------------
Artem-B wrote:

> I think throwing the error in ISel is a good place to fail.

It's a convenient place for LLVM developer. It's problematic for the end user. 
In general, if we're diagnosing a user error, it must be in a way that's 
actionable for the *user*, not for the compiler developer. Diagnostic by 
compiler crash is not the best UI.

Granted, producing an invalid instruction and relying on ptxas to diagnose it 
is only marginally better.

I think the missing bit of the puzzle here is that we still support 32-bit 
compilation on sm_90+. If we make it impossible to do it in principle, then it 
makes the whole point moot, and we no longer have to bother with 32-bit generic 
pointers for the instructions that are available on newer GPUs only.

This is something to be addressed separately. For this patch, I'm fine with 
proceeding with the assumption that 32-bit compilation never happens.


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

Reply via email to