[Mlir-commits] [mlir] [mlir][mem2reg] Promote memory slots through transparent view operations (PR #196924)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu May 21 03:06:41 PDT 2026


github-actions[bot] wrote:

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

* 8080 tests passed
* 618 tests skipped
* 1 test failed

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

### Flang
<details>
<summary>Flang.Fir/mem2reg.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
fir-opt /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Fir/mem2reg.mlir --allow-unregistered-dialect --mem2reg --split-input-file | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Fir/mem2reg.mlir
# executed command: fir-opt /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Fir/mem2reg.mlir --allow-unregistered-dialect --mem2reg --split-input-file
# 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/flang/test/Fir/mem2reg.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Fir/mem2reg.mlir:76:11: error: CHECK: expected string not found in input
# | // CHECK: fir.declare_value %[[C42]] {uniq_name = "_QFfooEj"} : i32
# |           ^
# | <stdin>:42:118: note: scanning from here
# |  %1 = fir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFfooEi"} : (!fir.ref<i32>, !fir.dscope) -> !fir.ref<i32>
# |                                                                                                                      ^
# | <stdin>:42:118: note: with "C42" equal to "c42_i32"
# |  %1 = fir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFfooEi"} : (!fir.ref<i32>, !fir.dscope) -> !fir.ref<i32>
# |                                                                                                                      ^
# | <stdin>:44:2: note: possible intended match here
# |  %3 = fir.declare %2 {uniq_name = "_QFfooEj"} : (!fir.ref<i32>) -> !fir.ref<i32>
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Fir/mem2reg.mlir:95:11: error: CHECK: expected string not found in input
# | // CHECK: fir.declare_value %[[CONSTANT_1]] {uniq_name = "_QFfooEjlocal"} : i32
# |           ^
# | <stdin>:56:36: note: scanning from here
# |  %c42_i32 = arith.constant 42 : i32
# |                                    ^
# | <stdin>:56:36: note: with "CONSTANT_1" equal to "c42_i32"
# |  %c42_i32 = arith.constant 42 : i32
# |                                    ^
# | <stdin>:61:2: note: possible intended match here
# |  %4 = fir.declare %3 {uniq_name = "_QFfooEjlocal"} : (!fir.ref<i32>) -> !fir.ref<i32>
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Fir/mem2reg.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            37: // ----- 
# |            38: module { 
# |            39:  func.func @test_simple_declare(%arg0: !fir.ref<i32> {fir.bindc_name = "i"}) { 
# |            40:  %c42_i32 = arith.constant 42 : i32 
# |            41:  %0 = fir.dummy_scope : !fir.dscope 
# |            42:  %1 = fir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFfooEi"} : (!fir.ref<i32>, !fir.dscope) -> !fir.ref<i32> 
# | check:76'0                                                                                                                          X error: no match found
# | check:76'1                                                                                                                            with "C42" equal to "c42_i32"
# |            43:  %2 = fir.alloca i32 {bindc_name = "j", uniq_name = "_QFfooEj"} 
# | check:76'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            44:  %3 = fir.declare %2 {uniq_name = "_QFfooEj"} : (!fir.ref<i32>) -> !fir.ref<i32> 
# | check:76'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:76'2      ?                                                                                possible intended match
# |            45:  fir.store %c42_i32 to %3 : !fir.ref<i32> 
# | check:76'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            46:  %4 = fir.load %3 : !fir.ref<i32> 
# | check:76'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            47:  fir.store %4 to %1 : !fir.ref<i32> 
# | check:76'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            48:  return 
# | check:76'0     ~~~~~~~~
# |            49:  } 
# | check:76'0     ~~~
# |            50: } 
# | check:76'0     ~~
# |            51:  
# | check:76'0     ~
# |            52: // ----- 
# | check:76'0     ~~~~~~~~~
# |            53: module { 
# | check:76'0     ~~~~~~~~~
# |            54:  func.func @test_two_values(%arg0: !fir.ref<i32> {fir.bindc_name = "i"}, %arg1: !fir.ref<i32> {fir.bindc_name = "j"}) { 
# | check:76'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            55:  %c43_i32 = arith.constant 43 : i32 
# |            56:  %c42_i32 = arith.constant 42 : i32 
# | check:95'0                                        X error: no match found
# | check:95'1                                          with "CONSTANT_1" equal to "c42_i32"
# |            57:  %0 = fir.dummy_scope : !fir.dscope 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            58:  %1 = fir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFfooEi"} : (!fir.ref<i32>, !fir.dscope) -> !fir.ref<i32> 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            59:  %2 = fir.declare %arg1 dummy_scope %0 arg 2 {uniq_name = "_QFfooEj"} : (!fir.ref<i32>, !fir.dscope) -> !fir.ref<i32> 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            60:  %3 = fir.alloca i32 {bindc_name = "jlocal", uniq_name = "_QFfooEjlocal"} 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            61:  %4 = fir.declare %3 {uniq_name = "_QFfooEjlocal"} : (!fir.ref<i32>) -> !fir.ref<i32> 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:95'2      ?                                                                                     possible intended match
# |            62:  fir.store %c42_i32 to %4 : !fir.ref<i32> 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            63:  %5 = fir.load %4 : !fir.ref<i32> 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            64:  fir.store %5 to %1 : !fir.ref<i32> 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            65:  fir.store %c43_i32 to %4 : !fir.ref<i32> 
# | check:95'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            66:  %6 = fir.load %4 : !fir.ref<i32> 
# | check:95'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/196924


More information about the Mlir-commits mailing list