[Mlir-commits] [mlir] [mlir][dataflow] Add visitBranchRegionArgument interface to SparseBackwardDataFlowAnalysis and apply it in LivenessAnalysis/RemoveDeadValues (PR #169816)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sat Dec 27 04:36:29 PST 2025
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 7264 tests passed
* 598 tests skipped
* 4 tests failed
## Failed Tests
(click on a test name to see its output)
### MLIR
<details>
<summary>MLIR.Dialect/Arith/int-range-interface.mlir</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt -allow-unregistered-dialect -int-range-optimizations -canonicalize /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-interface.mlir | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-interface.mlir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt -allow-unregistered-dialect -int-range-optimizations -canonicalize /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-interface.mlir
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-interface.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-interface.mlir:105:11: error: CHECK: expected string not found in input
# | // CHECK: return %[[true]]
# | ^
# | <stdin>:49:29: note: scanning from here
# | %true = arith.constant true
# | ^
# | <stdin>:49:29: note: with "true" equal to "true"
# | %true = arith.constant true
# | ^
# | <stdin>:55:2: note: possible intended match here
# | return %0 : i1
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-interface.mlir
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 44: }
# | 45: func.func @for_loop_with_constant_result() -> i1 {
# | 46: %c0 = arith.constant 0 : index
# | 47: %c1 = arith.constant 1 : index
# | 48: %c4 = arith.constant 4 : index
# | 49: %true = arith.constant true
# | check:105'0 X error: no match found
# | check:105'1 with "true" equal to "true"
# | 50: %0 = scf.for %arg0 = %c0 to %c4 step %c1 iter_args(%arg1 = %true) -> (i1) {
# | check:105'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 51: %1 = arith.cmpi ule, %arg0, %c4 : index
# | check:105'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 52: %2 = arith.andi %1, %arg1 : i1
# | check:105'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 53: scf.yield %2 : i1
# | check:105'0 ~~~~~~~~~~~~~~~~~~~
# | 54: }
# | check:105'0 ~~~
# | 55: return %0 : i1
# | check:105'0 ~~~~~~~~~~~~~~~~
# | check:105'2 ? possible intended match
# | 56: }
# | check:105'0 ~~~
# | 57: func.func @while_false(%arg0: index) -> index {
# | check:105'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 58: %false = arith.constant false
# | 59: %c2 = arith.constant 2 : index
# | 60: %0 = arith.divui %arg0, %c2 : index
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>MLIR.Dialect/Arith/int-range-narrowing.mlir</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt --arith-int-range-narrowing="int-bitwidths-supported=1,8,16,24,32" /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-narrowing.mlir | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-narrowing.mlir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt --arith-int-range-narrowing=int-bitwidths-supported=1,8,16,24,32 /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-narrowing.mlir
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-narrowing.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-narrowing.mlir:322:15: error: CHECK-DAG: expected string not found in input
# | // CHECK-DAG: %[[BOUND_I8:.+]] = arith.index_castui %[[BOUND]] : index to i8
# | ^
# | <stdin>:164:40: note: scanning from here
# | scf.for %arg0 = %c16 to %1 step %c64 {
# | ^
# | <stdin>:164:40: note: with "BOUND" equal to "1"
# | scf.for %arg0 = %c16 to %1 step %c64 {
# | ^
# | <stdin>:166:2: note: possible intended match here
# | %3 = arith.minsi %2, %c64 : index
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/int-range-narrowing.mlir
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 159: %c0 = arith.constant 0 : index
# | 160: %c16 = arith.constant 16 : index
# | 161: %c64 = arith.constant 64 : index
# | 162: %0 = test.with_bounds {smax = 63 : index, smin = 0 : index, umax = 63 : index, umin = 0 : index} : index
# | 163: %1 = test.with_bounds {smax = 112 : index, smin = 16 : index, umax = 112 : index, umin = 16 : index} : index
# | 164: scf.for %arg0 = %c16 to %1 step %c64 {
# | dag:322'0 X error: no match found
# | dag:322'1 with "BOUND" equal to "1"
# | 165: %2 = arith.subi %1, %arg0 : index
# | dag:322'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 166: %3 = arith.minsi %2, %c64 : index
# | dag:322'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:322'2 ? possible intended match
# | 167: %4 = arith.subi %3, %0 : index
# | dag:322'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 168: %5 = arith.cmpi slt, %4, %c0 : index
# | dag:322'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 169: scf.if %5 {
# | dag:322'0 ~~~~~~~~~~~~~
# | 170: vector.print str "sideeffect"
# | dag:322'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 171: }
# | dag:322'0 ~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>MLIR.Dialect/Arith/unsigned-when-equivalent.mlir</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt -arith-unsigned-when-equivalent /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/unsigned-when-equivalent.mlir | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/unsigned-when-equivalent.mlir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt -arith-unsigned-when-equivalent /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/unsigned-when-equivalent.mlir
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/unsigned-when-equivalent.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/unsigned-when-equivalent.mlir:69:11: error: CHECK: expected string not found in input
# | // CHECK: %[[v:.*]] = arith.remui %[[arg1]]
# | ^
# | <stdin>:45:17: note: scanning from here
# | scf.for %arg1 = %c0 to %c8 step %c1 {
# | ^
# | <stdin>:45:17: note: with "arg1" equal to "arg1"
# | scf.for %arg1 = %c0 to %c8 step %c1 {
# | ^
# | <stdin>:46:2: note: possible intended match here
# | %0 = arith.remsi %arg1, %c4 : index
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Arith/unsigned-when-equivalent.mlir
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 40: func.func @preserves_structure(%arg0: memref<8xindex>) {
# | 41: %c0 = arith.constant 0 : index
# | 42: %c1 = arith.constant 1 : index
# | 43: %c4 = arith.constant 4 : index
# | 44: %c8 = arith.constant 8 : index
# | 45: scf.for %arg1 = %c0 to %c8 step %c1 {
# | check:69'0 X~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | check:69'1 with "arg1" equal to "arg1"
# | 46: %0 = arith.remsi %arg1, %c4 : index
# | check:69'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:69'2 ? possible intended match
# | 47: %1 = arith.addi %0, %0 : index
# | check:69'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 48: %2 = arith.cmpi sle, %1, %c4 : index
# | check:69'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 49: scf.if %2 {
# | check:69'0 ~~~~~~~~~~~~~
# | 50: memref.store %1, %arg0[%arg1] : memref<8xindex>
# | check:69'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 51: }
# | check:69'0 ~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>MLIR.Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt -int-range-optimizations /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt -int-range-optimizations /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir:53:11: error: CHECK: expected string not found in input
# | // CHECK: test.reflect_bounds {smax = 1 : index, smin = 0 : index, umax = 1 : index, umin = 0 : index}
# | ^
# | <stdin>:31:23: note: scanning from here
# | func.func @for_bounds() -> index {
# | ^
# | <stdin>:38:7: note: possible intended match here
# | %4 = test.reflect_bounds {smax = 9223372036854775807 : index, smin = -9223372036854775808 : index, umax = -1 : index, umin = 0 : index} %3 : index
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir:195:12: error: CHECK: expected string not found in input
# | // CHECK: test.reflect_bounds {smax = 31 : index, smin = 0 : index, umax = 31 : index, umin = 0 : index}
# | ^
# | <stdin>:113:12: note: scanning from here
# | scf.forall (%arg1, %arg2) in (%0, 64) {
# | ^
# | <stdin>:114:43: note: possible intended match here
# | %1 = test.reflect_bounds {smax = 9223372036854775807 : index, smin = -9223372036854775808 : index, umax = -1 : index, umin = 0 : index} %arg1 : index
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 26: cf.br ^bb2
# | 27: ^bb2: // pred: ^bb1
# | 28: %3 = test.reflect_bounds {smax = 4 : index, smin = 3 : index, umax = 4 : index, umin = 3 : index} %2 : index
# | 29: return %3 : index
# | 30: }
# | 31: func.func @for_bounds() -> index {
# | check:53'0 X~~~~~~~~~~~~~ error: no match found
# | 32: %0 = "test.constant"() <{value = 0 : index}> : () -> index
# | check:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 33: %1 = "test.constant"() <{value = 1 : index}> : () -> index
# | check:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 34: %2 = "test.constant"() <{value = 2 : index}> : () -> index
# | check:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 35: %3 = scf.for %arg0 = %0 to %2 step %1 iter_args(%arg1 = %0) -> (index) {
# | check:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 36: scf.yield %arg0 : index
# | check:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 37: }
# | check:53'0 ~~~
# | 38: %4 = test.reflect_bounds {smax = 9223372036854775807 : index, smin = -9223372036854775808 : index, umax = -1 : index, umin = 0 : index} %3 : index
# | check:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:53'1 ? possible intended match
# | 39: return %4 : index
# | check:53'0 ~~~~~~~~~~~~~~~~~~~
# | 40: }
# | check:53'0 ~~~
# | 41: func.func @no_analysis_of_loop_variants() -> index {
# | check:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 42: %0 = "test.constant"() <{value = 0 : index}> : () -> index
# | 43: %1 = "test.constant"() <{value = 1 : index}> : () -> index
# | .
# | .
# | .
# | 108: return
# | 109: }
# | 110: func.func @multiple_loop_ivs(%arg0: memref<?x64xi32>) {
# | 111: %c0_i32 = arith.constant 0 : i32
# | 112: %0 = test.with_bounds {smax = 32 : index, smin = 1 : index, umax = 32 : index, umin = 1 : index} : index
# | 113: scf.forall (%arg1, %arg2) in (%0, 64) {
# | check:195'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 114: %1 = test.reflect_bounds {smax = 9223372036854775807 : index, smin = -9223372036854775808 : index, umax = -1 : index, umin = 0 : index} %arg1 : index
# | check:195'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:195'1 ? possible intended match
# | 115: %2 = test.reflect_bounds {smax = 9223372036854775807 : index, smin = -9223372036854775808 : index, umax = -1 : index, umin = 0 : index} %arg2 : index
# | check:195'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 116: memref.store %c0_i32, %arg0[%1, %2] : memref<?x64xi32>
# | check:195'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 117: }
# | check:195'0 ~~~
# | 118: return
# | check:195'0 ~~~~~~~~
# | 119: }
# | check:195'0 ~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/169816
More information about the Mlir-commits
mailing list