Skip to content

[mlir]: Added properties/attributes ignore flags to OperationEquivalence #141664

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 30, 2025

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

vitalybuka added a commit that referenced this pull request Jun 1, 2025
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Jun 1, 2025
DhruvSrivastavaX pushed a commit to DhruvSrivastavaX/lldb-for-aix that referenced this pull request Jun 12, 2025
DhruvSrivastavaX pushed a commit to DhruvSrivastavaX/lldb-for-aix that referenced this pull request Jun 12, 2025
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