[flang-commits] [mlir] [flang] [mlir] Handle simple commutative cases in CSE. (PR #75274)

Jacques Pienaar via flang-commits flang-commits at lists.llvm.org
Thu Dec 14 13:08:10 PST 2023


================
@@ -1271,7 +1271,9 @@ struct OperationEquivalence {
   isEquivalentTo(Operation *lhs, Operation *rhs,
                  function_ref<LogicalResult(Value, Value)> checkEquivalent,
                  function_ref<void(Value, Value)> markEquivalent = nullptr,
-                 Flags flags = Flags::None);
+                 Flags flags = Flags::None,
+                 function_ref<LogicalResult(ValueRange, ValueRange)>
+                     checkCommutativeEquivalent = nullptr);
----------------
jpienaar wrote:

The equivalence classes are not exposed, so only accessible via the functors passed in. If a flag, then one could only access them via checkEquivalent still. Now, an option is to just not care about equivalence for commutative case except for pairwise part.

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


More information about the flang-commits mailing list