[Mlir-commits] [mlir] [MLIR][SparseTensor] Implemented LoopUseOuter and LoopUseInner heuristics for loop ordering (PR #232591)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Oct 15 21:48:54 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 4316 tests passed
* 464 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### MLIR
<details>
<summary>MLIR.Dialect/SparseTensor/sparse_loop_ordering_inputs.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_loop_ordering_inputs.mlir --split-input-file --sparse-reinterpret-map="loop-ordering-strategy=default"  --sparsification --canonicalize | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_loop_ordering_inputs.mlir --check-prefixes=CHECK,DEFAULT --enable-var-scope
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_loop_ordering_inputs.mlir' --split-input-file --sparse-reinterpret-map=loop-ordering-strategy=default --sparsification --canonicalize
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_loop_ordering_inputs.mlir' --check-prefixes=CHECK,DEFAULT --enable-var-scope
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_loop_ordering_inputs.mlir:45:13: error: DEFAULT: expected string not found in input
# | // DEFAULT: tensor.extract %arg2[%[[J]]]
# |             ^
# | <stdin>:78:22: note: scanning from here
# |  %7 = scf.for %arg4 = %c0 to %c8 step %c1 iter_args(%arg5 = %6) -> (i64) {
# |                      ^
# | <stdin>:78:22: note: with "J" equal to "arg4"
# |  %7 = scf.for %arg4 = %c0 to %c8 step %c1 iter_args(%arg5 = %6) -> (i64) {
# |                      ^
# | <stdin>:82:45: note: possible intended match here
# |  %12 = scf.for %arg6 = %10 to %11 step %c1 iter_args(%arg7 = %arg5) -> (i64) {
# |                                             ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_loop_ordering_inputs.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            73:  %2 = bufferization.to_buffer %arg2 : tensor<8xi64> to memref<8xi64> 
# |            74:  %3 = bufferization.to_buffer %arg3 : tensor<i64> to memref<i64> 
# |            75:  %4 = sparse_tensor.positions %arg1 level = 0 : tensor<8xi64, #sparse> to memref<?xindex> 
# |            76:  %5 = sparse_tensor.coordinates %arg1 level = 0 : tensor<8xi64, #sparse> to memref<?xindex> 
# |            77:  %6 = memref.load %3[] : memref<i64> 
# |            78:  %7 = scf.for %arg4 = %c0 to %c8 step %c1 iter_args(%arg5 = %6) -> (i64) { 
# | check:45'0                         {                                                        search range start (exclusive)
# | check:45'1                                                                                  error: no match found in search range
# | check:45'2                                                                                  with "J" equal to "arg4"
# |            79:  %9 = memref.load %2[%arg4] : memref<8xi64> 
# |            80:  %10 = memref.load %4[%c0] : memref<?xindex> 
# |            81:  %11 = memref.load %4[%c1] : memref<?xindex> 
# |            82:  %12 = scf.for %arg6 = %10 to %11 step %c1 iter_args(%arg7 = %arg5) -> (i64) { 
# | check:45'3                                                 ?                                    possible intended match
# |            83:  %13 = memref.load %5[%arg6] : memref<?xindex> 
# |            84:  %14 = arith.muli %13, %c2 : index 
# |            85:  %15 = arith.addi %14, %c1 : index 
# |            86:  %16 = memref.load %0[%15] : memref<16xi64> 
# |            87:  %17 = memref.load %1[%arg6] : memref<?xi64> 
# |             .
# |             .
# |             .
# |            95:  memref.store %7, %3[] : memref<i64> 
# |            96:  %8 = bufferization.to_tensor %3 : memref<i64> to tensor<i64> 
# |            97:  return %8 : tensor<i64> 
# |            98:  } 
# |            99: } 
# |           100:  
# | check:45'4      } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</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/232591


More information about the Mlir-commits mailing list