[llvm] [IR] Fix User use-after-destroy by zapping in ~User (PR #170575)

via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 3 16:47:09 PST 2025


github-actions[bot] wrote:

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

* 166720 tests passed
* 2908 tests skipped
* 1 test failed

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

### MLIR
<details>
<summary>MLIR.Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir (Likely Already Failing)</summary>
This test is already failing at the base commit.

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt --xegpu-wg-to-sg-distribute -split-input-file /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-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/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt --xegpu-wg-to-sg-distribute -split-input-file /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-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/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir:586:16: error: CHECK-DAG: expected string not found in input
# |  // CHECK-DAG: %[[REMU:.*]] = index.remu %[[SGID]], %[[C2:.*]]
# |                ^
# | <stdin>:824:33: note: scanning from here
# |  gpu.func @vector_create_mask_1D() {
# |                                 ^
# | <stdin>:824:33: note: with "SGID" equal to "0"
# |  gpu.func @vector_create_mask_1D() {
# |                                 ^
# | <stdin>:828:2: note: possible intended match here
# |  %1 = arith.remui %0, %c2 : index
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir:601:16: error: CHECK-DAG: expected string not found in input
# |  // CHECK-DAG: %[[SGIDX:.*]] = index.remu %[[SGID]], %[[C4:.*]]
# |                ^
# | <stdin>:842:33: note: scanning from here
# |  gpu.func @vector_create_mask_2D() {
# |                                 ^
# | <stdin>:842:33: note: with "SGID" equal to "0"
# |  gpu.func @vector_create_mask_2D() {
# |                                 ^
# | <stdin>:846:2: note: possible intended match here
# |  %1 = arith.remui %0, %c4 : index
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |          819:  %12 = arith.maxsi %11, %c0_6 : index 
# |          820:  %13 = arith.minsi %12, %c32_5 : index 
# |          821:  %14 = vector.create_mask %10, %13 : vector<32x32xi1> 
# |          822:  gpu.return 
# |          823:  } 
# |          824:  gpu.func @vector_create_mask_1D() { 
# | dag:586'0                                     X~~~~ error: no match found
# | dag:586'1                                           with "SGID" equal to "0"
# |          825:  %c8 = arith.constant 8 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          826:  %0 = gpu.subgroup_id : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          827:  %c2 = arith.constant 2 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          828:  %1 = arith.remui %0, %c2 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:586'2      ?                                 possible intended match
# |          829:  %c16 = arith.constant 16 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          830:  %2 = arith.muli %1, %c16 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          831:  %c0 = arith.constant 0 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          832:  %c32 = arith.constant 32 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          833:  %3 = arith.remui %2, %c32 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# |          837:  %5 = arith.maxsi %4, %c0_1 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          838:  %6 = arith.minsi %5, %c16_0 : index 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          839:  %7 = vector.create_mask %6 : vector<16xi1> 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          840:  gpu.return 
# | dag:586'0     ~~~~~~~~~~~~
# |          841:  } 
# | dag:586'0     ~~~
# |          842:  gpu.func @vector_create_mask_2D() { 
# | dag:586'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:601'0                                     X~~~~ error: no match found
# | dag:601'1                                           with "SGID" equal to "0"
# |          843:  %c16 = arith.constant 16 : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          844:  %0 = gpu.subgroup_id : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          845:  %c4 = arith.constant 4 : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          846:  %1 = arith.remui %0, %c4 : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:601'2      ?                                 possible intended match
# |          847:  %2 = arith.divui %0, %c4 : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          848:  %c8 = arith.constant 8 : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          849:  %3 = arith.remui %2, %c8 : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          850:  %c32 = arith.constant 32 : index 
# | dag:601'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          851:  %4 = arith.muli %3, %c32 : index 
# | dag:601'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/170575


More information about the llvm-commits mailing list