Skip to content

Commit b578608

Browse files
committed
[DSE,MSSA] Add use of alloca, to guard against removal in the future.
Currently the alloca does not escape and all stores and the memset can be removed. Adding a use of the alloca ensures not all stores are eliminated.
1 parent 17198df commit b578608

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

llvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
; RUN: opt -S -march=native -dse -enable-dse-memoryssa < %s| FileCheck %s
55
; CHECK: bitcast [5 x i64]* %{{[a-zA-Z_][a-zA-Z0-9_]*}} to i8*, !dbg
66
; CHECK-NEXT: %{{[0-9]+}} = getelementptr inbounds i8, i8* %0, i64 32, !dbg ![[DBG:[0-9]+]]
7+
; CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* align 16 %1, i8 0, i64 8, i1 false), !dbg ![[DBG:[0-9]+]]
78
; CHECK: ![[DBG]] = !DILocation(line: 2,
89

910
; The test IR is generated by running:
@@ -21,6 +22,8 @@
2122
; }
2223

2324

25+
declare void @use([5 x i64]*)
26+
2427
define dso_local i32 @_Z1av() !dbg !7 {
2528
entry:
2629
%retval = alloca i32, align 4
@@ -37,6 +40,7 @@ entry:
3740
store i64 2, i64* %4, align 16, !dbg !16
3841
%5 = getelementptr inbounds [5 x i64], [5 x i64]* %1, i32 0, i32 3, !dbg !16
3942
store i64 2, i64* %5, align 8, !dbg !16
43+
call void @use([5 x i64]* %b)
4044
%call = call i32 @_Z1av(), !dbg !17
4145
%tobool = icmp ne i32 %call, 0, !dbg !17
4246
br i1 %tobool, label %if.then, label %if.end, !dbg !19

0 commit comments

Comments
 (0)