Author: Vitaly Buka
Date: 2025-06-01T13:45:42-07:00
New Revision: dbc372751047ed0e0b95e234df91c7fe46f2cc43

URL: 
https://github.com/llvm/llvm-project/commit/dbc372751047ed0e0b95e234df91c7fe46f2cc43
DIFF: 
https://github.com/llvm/llvm-project/commit/dbc372751047ed0e0b95e234df91c7fe46f2cc43.diff

LOG: Revert "[mlir]: Added properties/attributes ignore flags to 
OperationEquivale…"

This reverts commit c5f3018668efea156831feb24843e34e4602a8e6.

Added: 
    

Modified: 
    mlir/include/mlir/IR/OperationSupport.h
    mlir/lib/IR/OperationSupport.cpp
    mlir/unittests/IR/OperationSupportTest.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/include/mlir/IR/OperationSupport.h 
b/mlir/include/mlir/IR/OperationSupport.h
index 65e6d4f64e36c..0046d977c68f4 100644
--- a/mlir/include/mlir/IR/OperationSupport.h
+++ b/mlir/include/mlir/IR/OperationSupport.h
@@ -1322,14 +1322,7 @@ struct OperationEquivalence {
     // When provided, the location attached to the operation are ignored.
     IgnoreLocations = 1,
 
-    // When provided, the discardable attributes attached to the operation are
-    // ignored.
-    IgnoreDiscardableAttrs = 2,
-
-    // When provided, the properties attached to the operation are ignored.
-    IgnoreProperties = 4,
-
-    LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IgnoreProperties)
+    LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IgnoreLocations)
   };
 
   /// Compute a hash for the given operation.

diff  --git a/mlir/lib/IR/OperationSupport.cpp 
b/mlir/lib/IR/OperationSupport.cpp
index b591b50f2d0dc..7c9e6c89d4d8e 100644
--- a/mlir/lib/IR/OperationSupport.cpp
+++ b/mlir/lib/IR/OperationSupport.cpp
@@ -680,14 +680,9 @@ llvm::hash_code OperationEquivalence::computeHash(
   //   - Operation Name
   //   - Attributes
   //   - Result Types
-  DictionaryAttr dictAttrs;
-  if (!(flags & Flags::IgnoreDiscardableAttrs))
-    dictAttrs = op->getRawDictionaryAttrs();
-  llvm::hash_code hashProperties;
-  if (!(flags & Flags::IgnoreProperties))
-    hashProperties = op->hashProperties();
-  llvm::hash_code hash = llvm::hash_combine(
-      op->getName(), dictAttrs, op->getResultTypes(), hashProperties);
+  llvm::hash_code hash =
+      llvm::hash_combine(op->getName(), op->getRawDictionaryAttrs(),
+                         op->getResultTypes(), op->hashProperties());
 
   //   - Location if required
   if (!(flags & Flags::IgnoreLocations))
@@ -841,19 +836,14 @@ OperationEquivalence::isRegionEquivalentTo(Region *lhs, 
Region *rhs,
     return true;
 
   // 1. Compare the operation properties.
-  if (!(flags & IgnoreDiscardableAttrs) &&
-      lhs->getRawDictionaryAttrs() != rhs->getRawDictionaryAttrs())
-    return false;
-
   if (lhs->getName() != rhs->getName() ||
+      lhs->getRawDictionaryAttrs() != rhs->getRawDictionaryAttrs() ||
       lhs->getNumRegions() != rhs->getNumRegions() ||
       lhs->getNumSuccessors() != rhs->getNumSuccessors() ||
       lhs->getNumOperands() != rhs->getNumOperands() ||
-      lhs->getNumResults() != rhs->getNumResults())
-    return false;
-  if (!(flags & IgnoreProperties) &&
-      !(lhs->getName().compareOpProperties(lhs->getPropertiesStorage(),
-                                           rhs->getPropertiesStorage())))
+      lhs->getNumResults() != rhs->getNumResults() ||
+      !lhs->getName().compareOpProperties(lhs->getPropertiesStorage(),
+                                          rhs->getPropertiesStorage()))
     return false;
   if (!(flags & IgnoreLocations) && lhs->getLoc() != rhs->getLoc())
     return false;

diff  --git a/mlir/unittests/IR/OperationSupportTest.cpp 
b/mlir/unittests/IR/OperationSupportTest.cpp
index b18512817969e..bac2b72b68deb 100644
--- a/mlir/unittests/IR/OperationSupportTest.cpp
+++ b/mlir/unittests/IR/OperationSupportTest.cpp
@@ -315,7 +315,6 @@ TEST(OperandStorageTest, PopulateDefaultAttrs) {
 TEST(OperationEquivalenceTest, HashWorksWithFlags) {
   MLIRContext context;
   context.getOrLoadDialect<test::TestDialect>();
-  OpBuilder b(&context);
 
   auto *op1 = createOp(&context);
   // `op1` has an unknown loc.
@@ -326,36 +325,12 @@ TEST(OperationEquivalenceTest, HashWorksWithFlags) {
         op, OperationEquivalence::ignoreHashValue,
         OperationEquivalence::ignoreHashValue, flags);
   };
-  // Check ignore location.
   EXPECT_EQ(getHash(op1, OperationEquivalence::IgnoreLocations),
             getHash(op2, OperationEquivalence::IgnoreLocations));
   EXPECT_NE(getHash(op1, OperationEquivalence::None),
             getHash(op2, OperationEquivalence::None));
-  op1->setLoc(NameLoc::get(StringAttr::get(&context, "foo")));
-  // Check ignore discardable dictionary attributes.
-  SmallVector<NamedAttribute> newAttrs = {
-      b.getNamedAttr("foo", b.getStringAttr("f"))};
-  op1->setAttrs(newAttrs);
-  EXPECT_EQ(getHash(op1, OperationEquivalence::IgnoreDiscardableAttrs),
-            getHash(op2, OperationEquivalence::IgnoreDiscardableAttrs));
-  EXPECT_NE(getHash(op1, OperationEquivalence::None),
-            getHash(op2, OperationEquivalence::None));
   op1->destroy();
   op2->destroy();
-
-  // Check ignore properties.
-  auto req1 = b.getI32IntegerAttr(10);
-  Operation *opWithProperty1 = b.create<test::OpAttrMatch1>(
-      b.getUnknownLoc(), req1, nullptr, nullptr, req1);
-  auto req2 = b.getI32IntegerAttr(60);
-  Operation *opWithProperty2 = b.create<test::OpAttrMatch1>(
-      b.getUnknownLoc(), req2, nullptr, nullptr, req2);
-  EXPECT_NE(getHash(op1, OperationEquivalence::None),
-            getHash(op2, OperationEquivalence::None));
-  EXPECT_EQ(getHash(opWithProperty1, OperationEquivalence::IgnoreProperties),
-            getHash(opWithProperty2, OperationEquivalence::IgnoreProperties));
-  opWithProperty1->destroy();
-  opWithProperty2->destroy();
 }
 
 } // namespace


        
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to