[Mlir-commits] [mlir] [mlir][Transforms] Fix CSE memEffectsCache handling for existing entries (PR #192178)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Wed Apr 15 18:14:28 PDT 2026


================
@@ -194,29 +194,32 @@ bool CSEDriver::hasOtherSideEffectingOpInBetween(Operation *fromOp,
   }
 
   Operation *nextOp = fromOp->getNextNode();
-  auto result =
-      memEffectsCache.try_emplace(fromOp, std::make_pair(fromOp, nullptr));
-  if (result.second) {
-    auto memEffectsCachePair = result.first->second;
-    if (memEffectsCachePair.second == nullptr) {
-      // No MemoryEffects::Write has been detected until the cached operation.
-      // Continue looking from the cached operation to toOp.
-      nextOp = memEffectsCachePair.first;
-    } else {
-      // MemoryEffects::Write has been detected before so there is no need to
-      // check further.
-      return true;
-    }
+
+  if (!memEffectsCache.contains(fromOp)) {
+    memEffectsCache.insert(
+        std::make_pair(fromOp, std::make_pair(fromOp, nullptr)));
   }
+
+  auto &memEffectsCachePair = memEffectsCache[fromOp];
----------------
zackc6 wrote:

Thanks a lot for verification and elaboration :)

I updated accordingly and corresponding MR description, please check ~

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


More information about the Mlir-commits mailing list