[flang-commits] [flang] [FIRToMemRef] copy ACC Variable Name attribute (PR #187724)

via flang-commits flang-commits at lists.llvm.org
Fri Mar 20 08:54:12 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-flang-fir-hlfir

Author: Scott Manley (rscottmanley)

<details>
<summary>Changes</summary>

When converting from fir.alloca to memref.alloca, also copy the acc variable name attribute if it exists

---
Full diff: https://github.com/llvm/llvm-project/pull/187724.diff


2 Files Affected:

- (modified) flang/lib/Optimizer/Transforms/FIRToMemRef.cpp (+1) 
- (modified) flang/test/Transforms/FIRToMemRef/alloca.mlir (+2-2) 


``````````diff
diff --git a/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp b/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
index 90b4b01e30f62..ee6f644aea911 100644
--- a/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
+++ b/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
@@ -330,6 +330,7 @@ void FIRToMemRef::rewriteAlloca(fir::AllocaOp firAlloca,
   copyAttribute(firAlloca, alloca, firAlloca.getBindcNameAttrName());
   copyAttribute(firAlloca, alloca, firAlloca.getUniqNameAttrName());
   copyAttribute(firAlloca, alloca, cuf::getDataAttrName());
+  copyAttribute(firAlloca, alloca, acc::getVarNameAttrName());
 
   auto convert = fir::ConvertOp::create(rewriter, loc, type, alloca);
 
diff --git a/flang/test/Transforms/FIRToMemRef/alloca.mlir b/flang/test/Transforms/FIRToMemRef/alloca.mlir
index b2859370903f4..2c76c4a9b3849 100644
--- a/flang/test/Transforms/FIRToMemRef/alloca.mlir
+++ b/flang/test/Transforms/FIRToMemRef/alloca.mlir
@@ -86,11 +86,11 @@ func.func @peep_declare() {
 
 // check that attributes are copied when they exist
 // CHECK-LABEL: func.func @no_peep_declare
-// CHECK:       memref.alloca() {bindc_name = "x", uniq_name = "y"} : memref<i32>
+// CHECK:       memref.alloca() {acc.var_name = #acc.var_name<"z">, bindc_name = "x", uniq_name = "y"} : memref<i32>
 // CHECK-NOT:   memref.store %c1_i32, %alloca[] : memref<i32>
 func.func @no_peep_declare() {
   %c1_i32 = arith.constant 1 : i32
-  %0 = fir.alloca i32 {bindc_name = "x", uniq_name = "y"}
+  %0 = fir.alloca i32 {acc.var_name = #acc.var_name<"z">, bindc_name = "x", uniq_name = "y"}
   %1 = fir.declare %0 {uniq_name = "some_name"} : (!fir.ref<i32>) -> !fir.ref<i32>
   fir.store %c1_i32 to %1 : !fir.ref<i32>
   return

``````````

</details>


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


More information about the flang-commits mailing list