[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