[Mlir-commits] [mlir] [MLIR][SCF] Support permutation-based parallel loop fusion (PR #203207)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Jun 11 02:30:42 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

The build failed before running any tests. Click on a failure below to see the details.

<details>
<summary>tools/mlir/lib/Dialect/SCF/Transforms/CMakeFiles/obj.MLIRSCFTransforms.dir/ParallelLoopFusion.cpp.o</summary>

```
FAILED: tools/mlir/lib/Dialect/SCF/Transforms/CMakeFiles/obj.MLIRSCFTransforms.dir/ParallelLoopFusion.cpp.o
sccache /opt/llvm/bin/clang++ -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/mlir/lib/Dialect/SCF/Transforms -I/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/mlir/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -Werror=global-constructors -O3 -DNDEBUG -std=c++17 -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/mlir/lib/Dialect/SCF/Transforms/CMakeFiles/obj.MLIRSCFTransforms.dir/ParallelLoopFusion.cpp.o -MF tools/mlir/lib/Dialect/SCF/Transforms/CMakeFiles/obj.MLIRSCFTransforms.dir/ParallelLoopFusion.cpp.o.d -o tools/mlir/lib/Dialect/SCF/Transforms/CMakeFiles/obj.MLIRSCFTransforms.dir/ParallelLoopFusion.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:786:14: error: no member named 'getEmptyKey' in 'llvm::DenseMapInfo<mlir::Value>'; did you mean simply 'getEmptyKey'?
786 |     auto e = DenseMapInfo<mlir::Value>::getEmptyKey();
|              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|              getEmptyKey
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:785:24: note: 'getEmptyKey' declared here
785 |   static inline LoopIV getEmptyKey() {
|                        ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:787:13: error: no viable conversion from 'LoopIV' to 'Value'
787 |     return {e, e, e}; // Must be impossible to occur naturally
|             ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'LoopIV' to 'const Value &' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'LoopIV' to 'Value &&' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:98:13: note: candidate constructor not viable: no known conversion from 'LoopIV' to 'detail::ValueImpl *' for 1st argument
98 |   constexpr Value(detail::ValueImpl *impl = nullptr) : impl(impl) {}
|             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:787:16: error: no viable conversion from 'LoopIV' to 'Value'
787 |     return {e, e, e}; // Must be impossible to occur naturally
|                ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'LoopIV' to 'const Value &' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'LoopIV' to 'Value &&' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:98:13: note: candidate constructor not viable: no known conversion from 'LoopIV' to 'detail::ValueImpl *' for 1st argument
98 |   constexpr Value(detail::ValueImpl *impl = nullptr) : impl(impl) {}
|             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:787:19: error: no viable conversion from 'LoopIV' to 'Value'
787 |     return {e, e, e}; // Must be impossible to occur naturally
|                   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'LoopIV' to 'const Value &' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'LoopIV' to 'Value &&' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:98:13: note: candidate constructor not viable: no known conversion from 'LoopIV' to 'detail::ValueImpl *' for 1st argument
98 |   constexpr Value(detail::ValueImpl *impl = nullptr) : impl(impl) {}
|             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:790:14: error: no member named 'getTombstoneKey' in 'llvm::DenseMapInfo<mlir::Value>'; did you mean simply 'getTombstoneKey'?
790 |     auto t = DenseMapInfo<mlir::Value>::getTombstoneKey();
|              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|              getTombstoneKey
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:789:24: note: 'getTombstoneKey' declared here
789 |   static inline LoopIV getTombstoneKey() {
|                        ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:791:13: error: no viable conversion from 'LoopIV' to 'Value'
791 |     return {t, t, t}; // Must be impossible to occur naturally
|             ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'LoopIV' to 'const Value &' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'LoopIV' to 'Value &&' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:98:13: note: candidate constructor not viable: no known conversion from 'LoopIV' to 'detail::ValueImpl *' for 1st argument
98 |   constexpr Value(detail::ValueImpl *impl = nullptr) : impl(impl) {}
|             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:791:16: error: no viable conversion from 'LoopIV' to 'Value'
791 |     return {t, t, t}; // Must be impossible to occur naturally
|                ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'LoopIV' to 'const Value &' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'LoopIV' to 'Value &&' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:98:13: note: candidate constructor not viable: no known conversion from 'LoopIV' to 'detail::ValueImpl *' for 1st argument
98 |   constexpr Value(detail::ValueImpl *impl = nullptr) : impl(impl) {}
|             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:791:19: error: no viable conversion from 'LoopIV' to 'Value'
791 |     return {t, t, t}; // Must be impossible to occur naturally
|                   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'LoopIV' to 'const Value &' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:96:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'LoopIV' to 'Value &&' for 1st argument
96 | class Value {
|       ^~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/include/mlir/IR/Value.h:98:13: note: candidate constructor not viable: no known conversion from 'LoopIV' to 'detail::ValueImpl *' for 1st argument
98 |   constexpr Value(detail::ValueImpl *impl = nullptr) : impl(impl) {}
|             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp:833:35: error: 'std::not_equal_to' may not intend to support class template argument deduction [-Werror,-Wctad-maybe-unsupported]
833 |                  diffIVs.begin(), std::not_equal_to());
|                                   ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_function.h:383:12: note: add a deduction guide to suppress this warning
383 |     struct not_equal_to : public binary_function<_Tp, _Tp, bool>
|            ^
9 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

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


More information about the Mlir-commits mailing list