Skip to content

Conversation

@AviadCo
Copy link
Contributor

@AviadCo AviadCo commented May 27, 2025

Those flags are useful for cases and operation which we may consider equivalent even when their attributes/properties are not the same.

@AviadCo AviadCo requested a review from joker-eph May 27, 2025 20:01
@llvmbot llvmbot added mlir:core MLIR Core Infrastructure mlir labels May 27, 2025
@AviadCo AviadCo requested a review from matthias-springer May 27, 2025 20:01
@llvmbot
Copy link
Member

llvmbot commented May 27, 2025

@llvm/pr-subscribers-mlir

Author: Aviad Cohen (AviadCo)

Changes

Those flags are useful for cases and operation which we may consider equivalent even when their attributes/properties are not the same.


Full diff: https://github.com/llvm/llvm-project/pull/141664.diff

3 Files Affected:

  • (modified) mlir/include/mlir/IR/OperationSupport.h (+8-1)
  • (modified) mlir/lib/IR/OperationSupport.cpp (+17-7)
  • (modified) mlir/unittests/IR/OperationSupportTest.cpp (+15)
diff --git a/mlir/include/mlir/IR/OperationSupport.h b/mlir/include/mlir/IR/OperationSupport.h
index 0046d977c68f4..c9d902514a66b 100644
--- a/mlir/include/mlir/IR/OperationSupport.h
+++ b/mlir/include/mlir/IR/OperationSupport.h
@@ -1322,7 +1322,14 @@ struct OperationEquivalence {
     // When provided, the location attached to the operation are ignored.
     IgnoreLocations = 1,
 
-    LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IgnoreLocations)
+    // When provided, the dictionary attributes attached to the operation are
+    // ignored.
+    IgnoreDictionaryAttrs = 2,
+
+    // When provided, the properties attached to the operation are ignored.
+    IgnoreProperties = 4,
+
+    LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IgnoreProperties)
   };
 
   /// Compute a hash for the given operation.
diff --git a/mlir/lib/IR/OperationSupport.cpp b/mlir/lib/IR/OperationSupport.cpp
index 7c9e6c89d4d8e..cd0611e741eb3 100644
--- a/mlir/lib/IR/OperationSupport.cpp
+++ b/mlir/lib/IR/OperationSupport.cpp
@@ -680,9 +680,14 @@ llvm::hash_code OperationEquivalence::computeHash(
   //   - Operation Name
   //   - Attributes
   //   - Result Types
-  llvm::hash_code hash =
-      llvm::hash_combine(op->getName(), op->getRawDictionaryAttrs(),
-                         op->getResultTypes(), op->hashProperties());
+  DictionaryAttr dictAttrs;
+  if (!(flags & Flags::IgnoreDictionaryAttrs))
+    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);
 
   //   - Location if required
   if (!(flags & Flags::IgnoreLocations))
@@ -836,14 +841,19 @@ OperationEquivalence::isRegionEquivalentTo(Region *lhs, Region *rhs,
     return true;
 
   // 1. Compare the operation properties.
+  if (!(flags & IgnoreDictionaryAttrs) &&
+      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() ||
-      !lhs->getName().compareOpProperties(lhs->getPropertiesStorage(),
-                                          rhs->getPropertiesStorage()))
+      lhs->getNumResults() != rhs->getNumResults())
+    return false;
+  if (!(flags & IgnoreProperties) &&
+      !(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 bac2b72b68deb..30fe44d49f5cb 100644
--- a/mlir/unittests/IR/OperationSupportTest.cpp
+++ b/mlir/unittests/IR/OperationSupportTest.cpp
@@ -314,6 +314,7 @@ TEST(OperandStorageTest, PopulateDefaultAttrs) {
 
 TEST(OperationEquivalenceTest, HashWorksWithFlags) {
   MLIRContext context;
+  Builder b(&context);
   context.getOrLoadDialect<test::TestDialect>();
 
   auto *op1 = createOp(&context);
@@ -325,10 +326,24 @@ 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));
+  // Check ignore dictionary attributes.
+  op1->setLoc(NameLoc::get(StringAttr::get(&context, "foo")));
+  EXPECT_EQ(getHash(op1, OperationEquivalence::IgnoreDictionaryAttrs),
+            getHash(op2, OperationEquivalence::IgnoreDictionaryAttrs));
+  SmallVector<NamedAttribute> newAttrs = {
+      b.getNamedAttr("foo", b.getStringAttr("f"))};
+  op1->setAttrs(newAttrs);
+  EXPECT_NE(getHash(op1, OperationEquivalence::None),
+            getHash(op2, OperationEquivalence::None));
+  op2->setAttrs(newAttrs);
+  // Check ignore properties.
+  EXPECT_EQ(getHash(op1, OperationEquivalence::IgnoreProperties),
+            getHash(op2, OperationEquivalence::IgnoreProperties));
   op1->destroy();
   op2->destroy();
 }

@llvmbot
Copy link
Member

llvmbot commented May 27, 2025

@llvm/pr-subscribers-mlir-core

Author: Aviad Cohen (AviadCo)

Changes

Those flags are useful for cases and operation which we may consider equivalent even when their attributes/properties are not the same.


Full diff: https://github.com/llvm/llvm-project/pull/141664.diff

3 Files Affected:

  • (modified) mlir/include/mlir/IR/OperationSupport.h (+8-1)
  • (modified) mlir/lib/IR/OperationSupport.cpp (+17-7)
  • (modified) mlir/unittests/IR/OperationSupportTest.cpp (+15)
diff --git a/mlir/include/mlir/IR/OperationSupport.h b/mlir/include/mlir/IR/OperationSupport.h
index 0046d977c68f4..c9d902514a66b 100644
--- a/mlir/include/mlir/IR/OperationSupport.h
+++ b/mlir/include/mlir/IR/OperationSupport.h
@@ -1322,7 +1322,14 @@ struct OperationEquivalence {
     // When provided, the location attached to the operation are ignored.
     IgnoreLocations = 1,
 
-    LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IgnoreLocations)
+    // When provided, the dictionary attributes attached to the operation are
+    // ignored.
+    IgnoreDictionaryAttrs = 2,
+
+    // When provided, the properties attached to the operation are ignored.
+    IgnoreProperties = 4,
+
+    LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IgnoreProperties)
   };
 
   /// Compute a hash for the given operation.
diff --git a/mlir/lib/IR/OperationSupport.cpp b/mlir/lib/IR/OperationSupport.cpp
index 7c9e6c89d4d8e..cd0611e741eb3 100644
--- a/mlir/lib/IR/OperationSupport.cpp
+++ b/mlir/lib/IR/OperationSupport.cpp
@@ -680,9 +680,14 @@ llvm::hash_code OperationEquivalence::computeHash(
   //   - Operation Name
   //   - Attributes
   //   - Result Types
-  llvm::hash_code hash =
-      llvm::hash_combine(op->getName(), op->getRawDictionaryAttrs(),
-                         op->getResultTypes(), op->hashProperties());
+  DictionaryAttr dictAttrs;
+  if (!(flags & Flags::IgnoreDictionaryAttrs))
+    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);
 
   //   - Location if required
   if (!(flags & Flags::IgnoreLocations))
@@ -836,14 +841,19 @@ OperationEquivalence::isRegionEquivalentTo(Region *lhs, Region *rhs,
     return true;
 
   // 1. Compare the operation properties.
+  if (!(flags & IgnoreDictionaryAttrs) &&
+      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() ||
-      !lhs->getName().compareOpProperties(lhs->getPropertiesStorage(),
-                                          rhs->getPropertiesStorage()))
+      lhs->getNumResults() != rhs->getNumResults())
+    return false;
+  if (!(flags & IgnoreProperties) &&
+      !(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 bac2b72b68deb..30fe44d49f5cb 100644
--- a/mlir/unittests/IR/OperationSupportTest.cpp
+++ b/mlir/unittests/IR/OperationSupportTest.cpp
@@ -314,6 +314,7 @@ TEST(OperandStorageTest, PopulateDefaultAttrs) {
 
 TEST(OperationEquivalenceTest, HashWorksWithFlags) {
   MLIRContext context;
+  Builder b(&context);
   context.getOrLoadDialect<test::TestDialect>();
 
   auto *op1 = createOp(&context);
@@ -325,10 +326,24 @@ 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));
+  // Check ignore dictionary attributes.
+  op1->setLoc(NameLoc::get(StringAttr::get(&context, "foo")));
+  EXPECT_EQ(getHash(op1, OperationEquivalence::IgnoreDictionaryAttrs),
+            getHash(op2, OperationEquivalence::IgnoreDictionaryAttrs));
+  SmallVector<NamedAttribute> newAttrs = {
+      b.getNamedAttr("foo", b.getStringAttr("f"))};
+  op1->setAttrs(newAttrs);
+  EXPECT_NE(getHash(op1, OperationEquivalence::None),
+            getHash(op2, OperationEquivalence::None));
+  op2->setAttrs(newAttrs);
+  // Check ignore properties.
+  EXPECT_EQ(getHash(op1, OperationEquivalence::IgnoreProperties),
+            getHash(op2, OperationEquivalence::IgnoreProperties));
   op1->destroy();
   op2->destroy();
 }

@AviadCo AviadCo force-pushed the hash/ignore-prop branch from 3e49826 to 160cd31 Compare May 28, 2025 04:19
@AviadCo AviadCo force-pushed the hash/ignore-prop branch from 160cd31 to dd990cb Compare May 29, 2025 08:44
Copy link
Contributor

@krzysz00 krzysz00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Main comment is test coverage

@AviadCo AviadCo force-pushed the hash/ignore-prop branch from dd990cb to 3925663 Compare May 30, 2025 13:57
Those flags are useful for cases and operation which we may consider
equivalent even when their attributes/properties are not the same.
@AviadCo AviadCo force-pushed the hash/ignore-prop branch from 3925663 to 1fa4e8c Compare May 30, 2025 14:08
Copy link
Contributor

@krzysz00 krzysz00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, thank you. Do you need a merge?

@AviadCo
Copy link
Contributor Author

AviadCo commented May 30, 2025

Approved, thank you. Do you need a merge?

Thanks for the review! I will land it.

@AviadCo AviadCo merged commit c5f3018 into llvm:main May 30, 2025
11 checks passed
@AviadCo AviadCo deleted the hash/ignore-prop branch May 30, 2025 19:18
@llvm-ci
Copy link
Collaborator

llvm-ci commented May 30, 2025

LLVM Buildbot has detected a new failure on builder sanitizer-aarch64-linux-bootstrap-asan running on sanitizer-buildbot7 while building mlir at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/24/builds/9000

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using lld-link: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/lld-link
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using ld64.lld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using wasm-ld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using ld.lld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/ld.lld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using lld-link: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/lld-link
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using ld64.lld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using wasm-ld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/main.py:72: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 87660 tests, 72 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.
FAIL: MLIR-Unit :: IR/./MLIRIRTests/88/116 (84477 of 87660)
******************** TEST 'MLIR-Unit :: IR/./MLIRIRTests/88/116' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:/home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/tools/mlir/unittests/IR/./MLIRIRTests-MLIR-Unit-79360-88-116.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=116 GTEST_SHARD_INDEX=88 /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/tools/mlir/unittests/IR/./MLIRIRTests
--

Note: This is test shard 89 of 116.
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from OperationEquivalenceTest
[ RUN      ] OperationEquivalenceTest.HashWorksWithFlags

--
exit: 1
--
shard JSON output does not exist: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/tools/mlir/unittests/IR/./MLIRIRTests-MLIR-Unit-79360-88-116.json
********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
Slowest Tests:
--------------------------------------------------------------------------
225.93s: Clang :: Driver/fsanitize.c
165.34s: Clang :: Preprocessor/riscv-target-features.c
139.82s: Clang :: Driver/arm-cortex-cpus-2.c
136.94s: Clang :: Driver/arm-cortex-cpus-1.c
133.85s: Clang :: OpenMP/target_defaultmap_codegen_01.cpp
129.76s: Clang :: OpenMP/target_update_codegen.cpp
119.43s: LLVM :: CodeGen/RISCV/attributes.ll
117.24s: Clang :: Preprocessor/arm-target-features.c
116.34s: Clang :: Preprocessor/aarch64-target-features.c
100.35s: LLVM :: CodeGen/AMDGPU/sched-group-barrier-pipeline-solver.mir
97.46s: Clang :: Preprocessor/predefined-arch-macros.c
92.21s: Clang :: Driver/linux-ld.c
86.00s: Clang :: Driver/clang_f_opts.c
83.97s: Clang :: Driver/x86-target-features.c
81.94s: Clang :: Driver/cl-options.c
76.19s: LLVM :: CodeGen/ARM/build-attributes.ll
66.32s: Clang :: Driver/debug-options.c
65.84s: Clang :: Preprocessor/predefined-macros-no-warnings.c
Step 11 (stage2/asan check) failure: stage2/asan check (failure)
...
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using lld-link: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/lld-link
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using ld64.lld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using wasm-ld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using ld.lld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/ld.lld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using lld-link: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/lld-link
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using ld64.lld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:520: note: using wasm-ld: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm-project/llvm/utils/lit/lit/main.py:72: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 87660 tests, 72 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.
FAIL: MLIR-Unit :: IR/./MLIRIRTests/88/116 (84477 of 87660)
******************** TEST 'MLIR-Unit :: IR/./MLIRIRTests/88/116' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:/home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/tools/mlir/unittests/IR/./MLIRIRTests-MLIR-Unit-79360-88-116.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=116 GTEST_SHARD_INDEX=88 /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/tools/mlir/unittests/IR/./MLIRIRTests
--

Note: This is test shard 89 of 116.
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from OperationEquivalenceTest
[ RUN      ] OperationEquivalenceTest.HashWorksWithFlags

--
exit: 1
--
shard JSON output does not exist: /home/b/sanitizer-aarch64-linux-bootstrap-asan/build/llvm_build_asan/tools/mlir/unittests/IR/./MLIRIRTests-MLIR-Unit-79360-88-116.json
********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
Slowest Tests:
--------------------------------------------------------------------------
225.93s: Clang :: Driver/fsanitize.c
165.34s: Clang :: Preprocessor/riscv-target-features.c
139.82s: Clang :: Driver/arm-cortex-cpus-2.c
136.94s: Clang :: Driver/arm-cortex-cpus-1.c
133.85s: Clang :: OpenMP/target_defaultmap_codegen_01.cpp
129.76s: Clang :: OpenMP/target_update_codegen.cpp
119.43s: LLVM :: CodeGen/RISCV/attributes.ll
117.24s: Clang :: Preprocessor/arm-target-features.c
116.34s: Clang :: Preprocessor/aarch64-target-features.c
100.35s: LLVM :: CodeGen/AMDGPU/sched-group-barrier-pipeline-solver.mir
97.46s: Clang :: Preprocessor/predefined-arch-macros.c
92.21s: Clang :: Driver/linux-ld.c
86.00s: Clang :: Driver/clang_f_opts.c
83.97s: Clang :: Driver/x86-target-features.c
81.94s: Clang :: Driver/cl-options.c
76.19s: LLVM :: CodeGen/ARM/build-attributes.ll
66.32s: Clang :: Driver/debug-options.c
65.84s: Clang :: Preprocessor/predefined-macros-no-warnings.c

@vitalybuka
Copy link
Collaborator

vitalybuka commented Jun 1, 2025

There are multiple bots broken on this patch like this
https://lab.llvm.org/buildbot/#/builders/94/builds/7627/steps/11/logs/stdio

Even with #142210

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mlir:core MLIR Core Infrastructure mlir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants