[llvm] [IR] Introduce intrinsics to model allocator provenance semantics (PR #228048)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 1 06:53:00 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 154513 tests passed
* 3448 tests skipped
* 5 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll -passes=dse -S -enable-dse-partial-overwrite-tracking | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S -enable-dse-partial-overwrite-tracking
# 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/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll:12:14: error: CHECK-NOT: excluded string found in input
# | ; CHECK-NOT: tail call void @llvm.memset.p0.i64(ptr align 8 %edi, i8 0, i64 176, i1 false)
# | ^
# | <stdin>:10:2: note: found here
# | tail call void @llvm.memset.p0.i64(ptr align 8 %edi, i8 0, i64 176, i1 false)
# | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | not:12'0 { search range start (exclusive)
# | 2: source_filename = "<stdin>"
# | 3: target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
# | 4: target triple = "x86_64-unknown-linux-gnu"
# | 5:
# | 6: ; Function Attrs: nounwind allockind("free")
# | 7: define void @_UPT_destroy(ptr captures(none) %ptr) local_unnamed_addr #0 {
# | 8: entry:
# | 9: %edi = getelementptr inbounds i8, ptr %ptr, i64 8
# | 10: tail call void @llvm.memset.p0.i64(ptr align 8 %edi, i8 0, i64 176, i1 false)
# | not:12'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match expected
# | 11: %format4.i = getelementptr inbounds i8, ptr %ptr, i64 144
# | 12: store i32 -1, ptr %format4.i, align 8
# | 13: tail call void @free(ptr nonnull %ptr)
# | not:12'2 } search range end (exclusive)
# | 14: ret void
# | 15: }
# | 16:
# | 17: ; Function Attrs: nounwind allockind("free")
# | 18: declare void @free(ptr allocptr captures(none)) local_unnamed_addr #0
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=dse < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=dse
# 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/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll:94:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[M1]])
# | ^
# | <stdin>:41:2: note: 'next' match was here
# | call void @free(ptr %m1)
# | ^
# | <stdin>:39:36: note: previous match ended here
# | %m2 = tail call ptr @malloc(i64 4)
# | ^
# | <stdin>:40:1: note: non-matching line after previous match is here
# | store i32 123, ptr %m1, align 4
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 34: %struct.alloca = alloca %struct.type, align 8
# | 35: %m1 = tail call ptr @malloc(i64 4)
# | 36: call void @llvm.lifetime.start.p0(ptr nonnull %struct.alloca) #6
# | 37: %struct.byte.4 = getelementptr inbounds i8, ptr %struct.alloca, i64 4
# | 38: %struct.byte.8 = getelementptr inbounds i8, ptr %struct.alloca, i64 8
# | 39: %m2 = tail call ptr @malloc(i64 4)
# | next:94'0 { search range start (exclusive)
# | 40: store i32 123, ptr %m1, align 4
# | 41: call void @free(ptr %m1)
# | next:94'1 !~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 42: store i32 123, ptr %m2, align 4
# | 43: call void @free(ptr %m2)
# | 44: %1 = getelementptr inbounds i8, ptr %struct.byte.8, i64 4
# | 45: call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 %1, i8 42, i64 4, i1 false)
# | 46: store i32 43, ptr %struct.byte.8, align 4
# | 47: %ret = load ptr, ptr %struct.byte.8, align 8
# | 48: call void @readnone(ptr %struct.byte.4)
# | 49: call void @readnone(ptr %struct.byte.8)
# | 50: call void @llvm.lifetime.end.p0(ptr nonnull %struct.alloca) #6
# | 51: ret ptr %ret
# | 52: }
# | 53:
# | 54: define ptr @foo_with_malloc_to_calloc() {
# | next:94'2 } search range end (exclusive)
# | 55: %struct.alloca = alloca %struct.type, align 8
# | 56: call void @llvm.lifetime.start.p0(ptr nonnull %struct.alloca) #6
# | 57: %struct.byte.8 = getelementptr inbounds i8, ptr %struct.alloca, i64 8
# | 58: %struct.byte.4 = getelementptr inbounds i8, ptr %struct.alloca, i64 4
# | 59: %calloc1 = call ptr @calloc(i64 1, i64 4)
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/free.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll -passes=dse -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S
# 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/llvm/test/Transforms/DeadStoreElimination/free.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:11:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: tail call void @free(ptr [[P:%.*]]) [[ATTR0:#.*]]
# | ^
# | <stdin>:16:2: note: 'next' match was here
# | tail call void @free(ptr %P) #2
# | ^
# | <stdin>:13:19: note: previous match ended here
# | define void @test(ptr %Q, ptr %P) {
# | ^
# | <stdin>:14:1: note: non-matching line after previous match is here
# | %DEAD = load i32, ptr %Q, align 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:22:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: tail call void @free(ptr [[P:%.*]]) [[ATTR0]]
# | ^
# | <stdin>:23:2: note: 'next' match was here
# | tail call void @free(ptr %P) #2
# | ^
# | <stdin>:20:20: note: previous match ended here
# | define void @test2(ptr %P) {
# | ^
# | <stdin>:21:1: note: non-matching line after previous match is here
# | %Q = getelementptr { i32, i32 }, ptr %P, i32 0, i32 1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:34:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[M]]) [[ATTR0]]
# | ^
# | <stdin>:32:2: note: 'next' match was here
# | call void @free(ptr %m) #2
# | ^
# | <stdin>:28:31: note: previous match ended here
# | %m = call ptr @malloc(i64 24)
# | ^
# | <stdin>:29:1: note: non-matching line after previous match is here
# | store i8 0, ptr %m, align 1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:52:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label [[SKIPINIT1]]
# | ^
# | <stdin>:44:2: note: 'next' match was here
# | br label %skipinit1
# | ^
# | <stdin>:42:7: note: previous match ended here
# | init1: ; preds = %entry
# | ^
# | <stdin>:43:1: note: non-matching line after previous match is here
# | store i8 1, ptr %alloc1, align 1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:107:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[PTR:%.*]])
# | ^
# | <stdin>:70:2: note: 'next' match was here
# | call void @free(ptr %ptr)
# | ^
# | <stdin>:67:34: note: previous match ended here
# | define void @delete_field_before(ptr %ptr) {
# | ^
# | <stdin>:68:1: note: non-matching line after previous match is here
# | %ptr.f1 = getelementptr %struct, ptr %ptr, i32 1, i32 1
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: declare void @free(ptr captures(none)) #0
# | 9:
# | 10: ; Function Attrs: allockind("alloc,uninitialized")
# | 11: declare noalias ptr @malloc(i64) #1
# | 12:
# | 13: define void @test(ptr %Q, ptr %P) {
# | next:11'0 { search range start (exclusive)
# | 14: %DEAD = load i32, ptr %Q, align 4
# | 15: store i32 %DEAD, ptr %P, align 4
# | 16: tail call void @free(ptr %P) #2
# | next:11'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 17: ret void
# | 18: }
# | 19:
# | 20: define void @test2(ptr %P) {
# | next:11'2 } search range end (exclusive)
# | next:22'0 { search range start (exclusive)
# | 21: %Q = getelementptr { i32, i32 }, ptr %P, i32 0, i32 1
# | 22: store i32 4, ptr %Q, align 4
# | 23: tail call void @free(ptr %P) #2
# | next:22'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 24: ret void
# | 25: }
# | 26:
# | 27: define void @test3() {
# | next:22'2 } search range end (exclusive)
# | 28: %m = call ptr @malloc(i64 24)
# | next:34'0 { search range start (exclusive)
# | 29: store i8 0, ptr %m, align 1
# | 30: %m1 = getelementptr i8, ptr %m, i64 1
# | 31: store i8 1, ptr %m1, align 1
# | 32: call void @free(ptr %m) #2
# | next:34'1 !~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 33: ret void
# | 34: }
# | 35:
# | 36: ; Function Attrs: nounwind
# | 37: define void @test4(i1 %x) #2 {
# | next:34'2 } search range end (exclusive)
# | 38: entry:
# | 39: %alloc1 = tail call noalias ptr @malloc(i64 4) #2
# | 40: br i1 %x, label %skipinit1, label %init1
# | 41:
# | 42: init1: ; preds = %entry
# | next:52'0 { search range start (exclusive)
# | 43: store i8 1, ptr %alloc1, align 1
# | 44: br label %skipinit1
# | next:52'1 !~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 45:
# | 46: skipinit1: ; preds = %init1, %entry
# | 47: tail call void @free(ptr %alloc1) #2
# | 48: ret void
# | 49: }
# | 50:
# | 51: define void @test5() {
# | next:52'2 } search range end (exclusive)
# | 52: br label %bb
# | 53:
# | 54: bb: ; preds = %bb, %0
# | 55: tail call void @free(ptr undef) #2
# | 56: br label %bb
# | .
# | .
# | .
# | 62: store i32 0, ptr %ptr.f1, align 4
# | 63: call void @free(ptr %ptr.f0)
# | 64: ret void
# | 65: }
# | 66:
# | 67: define void @delete_field_before(ptr %ptr) {
# | next:107'0 { search range start (exclusive)
# | 68: %ptr.f1 = getelementptr %struct, ptr %ptr, i32 1, i32 1
# | 69: store i32 0, ptr %ptr.f1, align 4
# | 70: call void @free(ptr %ptr)
# | next:107'1 !~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 71: ret void
# | 72: }
# | 73:
# | 74: attributes #0 = { allockind("free") }
# | 75: attributes #1 = { allockind("alloc,uninitialized") }
# | 76: attributes #2 = { nounwind }
# | next:107'2 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/multiblock-malloc-free.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll -passes=dse -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S
# 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/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll:19:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB3:%.*]]
# | ^
# | <stdin>:30:2: note: 'next' match was here
# | br i1 true, label %bb1, label %bb3
# | ^
# | <stdin>:28:21: note: previous match ended here
# | define void @test16(ptr noalias %P) {
# | ^
# | <stdin>:29:1: note: non-matching line after previous match is here
# | store i32 1, ptr %P, align 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll:46:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label [[BB3]]
# | ^
# | <stdin>:48:2: note: 'next' match was here
# | br label %bb3
# | ^
# | <stdin>:46:27: note: previous match ended here
# | call void @unknown_func()
# | ^
# | <stdin>:47:1: note: non-matching line after previous match is here
# | store i32 1, ptr %P, align 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll:64:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB3:%.*]]
# | ^
# | <stdin>:57:2: note: 'next' match was here
# | br i1 true, label %bb1, label %bb3
# | ^
# | <stdin>:55:37: note: previous match ended here
# | define void @test17_read_after_free(ptr noalias %P) {
# | ^
# | <stdin>:56:1: note: non-matching line after previous match is here
# | store i32 1, ptr %P, align 4
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 23: declare noalias ptr @strdup(ptr readonly captures(none)) #3
# | 24:
# | 25: ; Function Attrs: nounwind allockind("free")
# | 26: declare void @free(ptr captures(none)) #4
# | 27:
# | 28: define void @test16(ptr noalias %P) {
# | next:19'0 { search range start (exclusive)
# | 29: store i32 1, ptr %P, align 4
# | 30: br i1 true, label %bb1, label %bb3
# | next:19'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 31:
# | 32: bb1: ; preds = %0
# | 33: br label %bb3
# | 34:
# | 35: bb3: ; preds = %bb1, %0
# | 36: call void @free(ptr %P)
# | 37: store i32 1, ptr %P, align 4
# | 38: ret void
# | 39: }
# | 40:
# | 41: define void @test17(ptr noalias %P) {
# | next:19'2 } search range end (exclusive)
# | 42: store i32 1, ptr %P, align 4
# | 43: br i1 true, label %bb1, label %bb3
# | 44:
# | 45: bb1: ; preds = %0
# | 46: call void @unknown_func()
# | next:46'0 { search range start (exclusive)
# | 47: store i32 1, ptr %P, align 4
# | 48: br label %bb3
# | next:46'1 !~~~~~~~~~~~~ error: match on wrong line
# | 49:
# | 50: bb3: ; preds = %bb1, %0
# | 51: call void @free(ptr %P)
# | 52: ret void
# | 53: }
# | 54:
# | 55: define void @test17_read_after_free(ptr noalias %P) {
# | next:46'2 } search range end (exclusive)
# | next:64'0 { search range start (exclusive)
# | 56: store i32 1, ptr %P, align 4
# | 57: br i1 true, label %bb1, label %bb3
# | next:64'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 58:
# | 59: bb1: ; preds = %0
# | 60: br label %bb3
# | 61:
# | 62: bb3: ; preds = %bb1, %0
# | 63: call void @free(ptr %P)
# | 64: %lv = load i8, ptr %P, align 1
# | 65: ret void
# | 66: }
# | 67:
# | 68: define void @test19(ptr noalias %P) {
# | next:64'2 } search range end (exclusive)
# | 69: entry:
# | 70: %arrayidx0 = getelementptr inbounds i32, ptr %P, i64 1
# | 71: call void @llvm.memset.p0.i64(ptr align 4 %arrayidx0, i8 0, i64 28, i1 false)
# | 72: br i1 true, label %bb1, label %bb2
# | 73:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/simple.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll -passes=dse -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S
# 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/llvm/test/Transforms/DeadStoreElimination/simple.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll:731:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[P]])
# | ^
# | <stdin>:405:2: note: 'next' match was here
# | call void @free(ptr %P)
# | ^
# | <stdin>:403:27: note: previous match ended here
# | call void @unknown_func()
# | ^
# | <stdin>:404:1: note: non-matching line after previous match is here
# | store i32 2, ptr %P, align 4
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 398: ; Function Attrs: allockind("free")
# | 399: declare void @free(ptr captures(none)) #8
# | 400:
# | 401: define void @test41(ptr noalias %P) {
# | 402: store i32 1, ptr %P, align 4
# | 403: call void @unknown_func()
# | next:731'0 { search range start (exclusive)
# | 404: store i32 2, ptr %P, align 4
# | 405: call void @free(ptr %P)
# | next:731'1 !~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 406: ret void
# | 407: }
# | 408:
# | 409: define void @test42(ptr %P, ptr %Q) {
# | next:731'2 } search range end (exclusive)
# | 410: store i32 1, ptr %P, align 4
# | 411: store i32 2, ptr %Q, align 4
# | 412: store i8 3, ptr %P, align 1
# | 413: ret void
# | 414: }
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/228048
More information about the llvm-commits
mailing list