[flang-commits] [flang] [flang][cuda] Fix shared memory offset computation for nested cuf.shared_memory ops (PR #188659)

Zhen Wang via flang-commits flang-commits at lists.llvm.org
Wed Mar 25 20:49:07 PDT 2026


================
@@ -142,20 +143,25 @@ struct CUFComputeSharedMemoryOffsetsAndSize
           // Static shared memory.
           auto [size, align] = fir::getTypeSizeAndAlignmentOrCrash(
               loc, sharedOp.getInType(), *dl, kindMap);
-          createSharedMemoryGlobal(
-              builder, sharedOp.getLoc(), funcOp.getName(),
-              *sharedOp.getBindcName(), gpuMod,
-              fir::SequenceType::get(size, i8Ty), size,
-              sharedOp.getAlignment() ? *sharedOp.getAlignment() : align,
-              /*isDynamic=*/false);
+          std::string globalName = (funcOp.getName() + cudaSharedMemSuffix +
+                                    *sharedOp.getBindcName())
+                                       .str();
+          if (createdStaticGlobals.insert(globalName).second) {
----------------
wangzpgi wrote:

So a single shared memory allocation here is intended.

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


More information about the flang-commits mailing list