[flang-commits] [flang] [flang] add an optimization to remove fir.convert usage in FIRToMemRef (PR #187721)

Razvan Lupusoru via flang-commits flang-commits at lists.llvm.org
Fri Mar 20 09:19:15 PDT 2026


================
@@ -1010,6 +1010,21 @@ void FIRToMemRef::rewriteStoreOp(fir::StoreOp store, PatternRewriter &rewriter,
   Value value = store.getValue();
   rewriter.setInsertionPointAfter(store);
 
+  // Small local optimization that avoids the round-trip:
+  //   %25 = memref.load ... : memref<i32>
+  //   %26 = fir.convert %25 : (i32) -> !fir.logical<4>   // from load rewrite
+  //   %27 = fir.convert %26 : (!fir.logical<4>) -> i32   // from store rewrite
+  //   memref.store %27, ... : memref<i32>
+  // which would normalize the loaded value to 1 and break TRANSFER-like flows,
----------------
razvanlupusoru wrote:

Looks like indeed it is a Fortran intrinsic - and is the case you were trying to solve. Marking as resolved! Sorry for the noise.

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


More information about the flang-commits mailing list