Skip to content

Commit d80eb92

Browse files
authored
[llvm] Remove undef from llvm/test/Transforms tests (#123889)
This PR replaces some instances of `undef` with `function argument value` or `poison` or `concrete values` in several tests under `llvm/test/Transforms/` directory. These changes align with modern LLVM standards for better-defined behavior and test determinism. If this small PR is okay and gets merged, I will work on the rest. This is inspired by [this project](https://discourse.llvm.org/t/gsoc-2024-remove-undefined-behavior-from-tests/77236/29), work done on this by @leewei05
1 parent e30b703 commit d80eb92

File tree

12 files changed

+33
-33
lines changed

12 files changed

+33
-33
lines changed

llvm/test/Transforms/ADCE/2017-08-21-DomTree-deletions.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
; RUN: opt < %s -passes=adce | llvm-dis
22
; RUN: opt < %s -passes=adce -verify-dom-info | llvm-dis
33

4-
define void @foo() {
4+
define void @foo(i32 %arg) {
55
entry:
66
br label %switch
77
switch: ; preds = %entry
8-
switch i32 undef, label %default [
8+
switch i32 %arg, label %default [
99
i32 2, label %two
1010
i32 5, label %five
1111
i32 4, label %four

llvm/test/Transforms/ADCE/preserve-memoryssa-if-only-remove-debug.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
define i16 @test1() {
3535
entry:
36-
call void @llvm.dbg.declare(metadata ptr undef, metadata !4, metadata !DIExpression()), !dbg !16
36+
call void @llvm.dbg.declare(metadata ptr poison, metadata !4, metadata !DIExpression()), !dbg !16
3737
ret i16 0
3838
}
3939

llvm/test/Transforms/AddDiscriminators/inlined.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ for.cond: ; preds = %for.cond, %entry
2424
}
2525

2626
; Function Attrs: nounwind ssp
27-
define i32 @g() local_unnamed_addr #1 !dbg !12 {
27+
define i32 @g(i32 %arg) local_unnamed_addr #1 !dbg !12 {
2828
entry:
2929
%0 = tail call i64 @llvm.objectsize.i64.p0(ptr inttoptr (i64 1 to ptr), i1 false), !dbg !22
3030
%call = tail call ptr @__memset_chk(ptr null, i32 0, i64 0, i64 %0) #2, !dbg !23
31-
ret i32 undef, !dbg !24
31+
ret i32 %arg, !dbg !24
3232
}
3333

3434
; Function Attrs: nounwind

llvm/test/Transforms/AddDiscriminators/invoke.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ try.cont: ; preds = %invoke.cont
5454
eh.resume: ; preds = %invoke.cont2
5555
%exn3 = load ptr, ptr %exn.slot, align 8, !dbg !20
5656
%sel = load i32, ptr %ehselector.slot, align 4, !dbg !20
57-
%lpad.val = insertvalue { ptr, i32 } undef, ptr %exn3, 0, !dbg !20
57+
%lpad.val = insertvalue { ptr, i32 } poison, ptr %exn3, 0, !dbg !20
5858
%lpad.val4 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1, !dbg !20
5959
resume { ptr, i32 } %lpad.val4, !dbg !20
6060

llvm/test/Transforms/AggressiveInstCombine/AArch64/combine_ignore_debug.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ define void @test() {
1616
; DBG-LABEL: define void @test() {
1717
; DBG-NEXT: entry:
1818
; DBG-NEXT: [[L1:%.*]] = load i32, ptr @e, align 1
19-
; DBG-NEXT: #dbg_value(i32 undef, [[META3:![0-9]+]], !DIExpression(), [[META5:![0-9]+]])
19+
; DBG-NEXT: #dbg_value(i32 poison, [[META3:![0-9]+]], !DIExpression(), [[META5:![0-9]+]])
2020
; DBG-NEXT: store i32 [[L1]], ptr @l, align 1
2121
; DBG-NEXT: ret void
2222
;
@@ -28,7 +28,7 @@ define void @test() {
2828
;
2929
entry:
3030
%l1 = load i16, ptr @e, align 1
31-
call void @llvm.dbg.value(metadata i32 undef, metadata !3, metadata !DIExpression()), !dbg !5
31+
call void @llvm.dbg.value(metadata i32 poison, metadata !3, metadata !DIExpression()), !dbg !5
3232
%l2 = load i16, ptr getelementptr inbounds (%s, ptr @e, i16 0, i32 1), align 1
3333
%e2 = zext i16 %l2 to i32
3434
%e1 = zext i16 %l1 to i32

llvm/test/Transforms/AggressiveInstCombine/trunc_unreachable_bb.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
44

55
; Aggressive Instcombine should be able ignore unreachable basic block.
66

7-
define void @func_20() {
7+
define void @func_20(i32 %arg) {
88
; CHECK-LABEL: @func_20(
99
; CHECK-NEXT: for.body94:
1010
; CHECK-NEXT: unreachable
1111
; CHECK: for.cond641:
12-
; CHECK-NEXT: [[OR722:%.*]] = or i32 [[OR722]], undef
12+
; CHECK-NEXT: [[OR722:%.*]] = or i32 [[OR722]], %arg
1313
; CHECK-NEXT: [[OR723:%.*]] = or i32 [[OR722]], 1
1414
; CHECK-NEXT: [[CONV724:%.*]] = trunc i32 [[OR723]] to i16
1515
; CHECK-NEXT: br label [[FOR_COND641:%.*]]
@@ -18,19 +18,19 @@ for.body94:
1818
unreachable
1919

2020
for.cond641:
21-
%or722 = or i32 %or722, undef
21+
%or722 = or i32 %or722, %arg
2222
%or723 = or i32 %or722, 1
2323
%conv724 = trunc i32 %or723 to i16
2424
br label %for.cond641
2525
}
2626

27-
define void @func_21() {
27+
define void @func_21(i32 %arg) {
2828
; CHECK-LABEL: @func_21(
2929
; CHECK-NEXT: for.body94:
3030
; CHECK-NEXT: unreachable
3131
; CHECK: for.cond641:
32-
; CHECK-NEXT: [[OR722:%.*]] = or i32 [[A:%.*]], undef
33-
; CHECK-NEXT: [[A]] = or i32 [[OR722]], undef
32+
; CHECK-NEXT: [[OR722:%.*]] = or i32 [[A:%.*]], %arg
33+
; CHECK-NEXT: [[A]] = or i32 [[OR722]], %arg
3434
; CHECK-NEXT: [[OR723:%.*]] = or i32 [[OR722]], 1
3535
; CHECK-NEXT: [[CONV724:%.*]] = trunc i32 [[OR723]] to i16
3636
; CHECK-NEXT: br label [[FOR_COND641:%.*]]
@@ -39,8 +39,8 @@ for.body94:
3939
unreachable
4040

4141
for.cond641:
42-
%or722 = or i32 %a, undef
43-
%a = or i32 %or722, undef
42+
%or722 = or i32 %a, %arg
43+
%a = or i32 %or722, %arg
4444
%or723 = or i32 %or722, 1
4545
%conv724 = trunc i32 %or723 to i16
4646
br label %for.cond641

llvm/test/Transforms/AggressiveInstCombine/trunc_vector_instrs.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ define <4 x i16> @shuffle(<2 x i8> %a, <2 x i8> %b) {
1919
define <2 x i16> @unary_shuffle(<2 x i8> %a) {
2020
; CHECK-LABEL: @unary_shuffle(
2121
; CHECK-NEXT: [[ZEXTA:%.*]] = zext <2 x i8> [[A:%.*]] to <2 x i32>
22-
; CHECK-NEXT: [[SHUF:%.*]] = shufflevector <2 x i32> [[ZEXTA]], <2 x i32> undef, <2 x i32> <i32 1, i32 0>
22+
; CHECK-NEXT: [[SHUF:%.*]] = shufflevector <2 x i32> [[ZEXTA]], <2 x i32> poison, <2 x i32> <i32 1, i32 0>
2323
; CHECK-NEXT: [[TRUNC:%.*]] = trunc <2 x i32> [[SHUF]] to <2 x i16>
2424
; CHECK-NEXT: ret <2 x i16> [[TRUNC]]
2525
;
2626
%zexta = zext <2 x i8> %a to <2 x i32>
27-
%shuf = shufflevector <2 x i32> %zexta, <2 x i32> undef, <2 x i32> <i32 1, i32 0>
27+
%shuf = shufflevector <2 x i32> %zexta, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
2828
%trunc = trunc <2 x i32> %shuf to <2 x i16>
2929
ret <2 x i16> %trunc
3030
}

llvm/test/Transforms/AlignmentFromAssumptions/simple.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -327,12 +327,12 @@ define i32 @moo(ptr nocapture %a) {
327327
; CHECK-NEXT: entry:
328328
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i16 32) ]
329329
; CHECK-NEXT: tail call void @llvm.memset.p0.i64(ptr align 32 [[A]], i8 0, i64 64, i1 false)
330-
; CHECK-NEXT: ret i32 undef
330+
; CHECK-NEXT: ret i32 0
331331
;
332332
entry:
333333
tail call void @llvm.assume(i1 true) ["align"(ptr %a, i16 32)]
334334
tail call void @llvm.memset.p0.i64(ptr align 4 %a, i8 0, i64 64, i1 false)
335-
ret i32 undef
335+
ret i32 0
336336
}
337337

338338
define i32 @moo2(ptr nocapture %a, ptr nocapture %b) {
@@ -342,13 +342,13 @@ define i32 @moo2(ptr nocapture %a, ptr nocapture %b) {
342342
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[B]], i32 128) ]
343343
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i16 32) ]
344344
; CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64(ptr align 32 [[A]], ptr align 128 [[B]], i64 64, i1 false)
345-
; CHECK-NEXT: ret i32 undef
345+
; CHECK-NEXT: ret i32 0
346346
;
347347
entry:
348348
tail call void @llvm.assume(i1 true) ["align"(ptr %b, i32 128)]
349349
tail call void @llvm.assume(i1 true) ["align"(ptr %a, i16 32)]
350350
tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a, ptr align 4 %b, i64 64, i1 false)
351-
ret i32 undef
351+
ret i32 0
352352
}
353353

354354
define i32 @moo3(ptr nocapture %a, ptr nocapture %b) {
@@ -357,12 +357,12 @@ define i32 @moo3(ptr nocapture %a, ptr nocapture %b) {
357357
; CHECK-NEXT: entry:
358358
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i16 32), "align"(ptr [[B]], i32 128) ]
359359
; CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64(ptr align 32 [[A]], ptr align 128 [[B]], i64 64, i1 false)
360-
; CHECK-NEXT: ret i32 undef
360+
; CHECK-NEXT: ret i32 0
361361
;
362362
entry:
363363
tail call void @llvm.assume(i1 true) ["align"(ptr %a, i16 32), "align"(ptr %b, i32 128)]
364364
tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a, ptr align 4 %b, i64 64, i1 false)
365-
ret i32 undef
365+
ret i32 0
366366
}
367367

368368

llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,12 @@ define i32 @moo(ptr nocapture %a) nounwind uwtable {
254254
; CHECK-NEXT: entry:
255255
; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i64 32) ]
256256
; CHECK-NEXT: tail call void @llvm.memset.p0.i64(ptr align 32 [[A]], i8 0, i64 64, i1 false)
257-
; CHECK-NEXT: ret i32 undef
257+
; CHECK-NEXT: ret i32 0
258258
;
259259
entry:
260260
call void @llvm.assume(i1 true) ["align"(ptr %a, i64 32)]
261261
tail call void @llvm.memset.p0.i64(ptr align 4 %a, i8 0, i64 64, i1 false)
262-
ret i32 undef
262+
ret i32 0
263263

264264
}
265265

@@ -270,13 +270,13 @@ define i32 @moo2(ptr nocapture %a, ptr nocapture %b) nounwind uwtable {
270270
; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i64 32) ]
271271
; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[B]], i64 128) ]
272272
; CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64(ptr align 32 [[A]], ptr align 128 [[B]], i64 64, i1 false)
273-
; CHECK-NEXT: ret i32 undef
273+
; CHECK-NEXT: ret i32 0
274274
;
275275
entry:
276276
call void @llvm.assume(i1 true) ["align"(ptr %a, i64 32)]
277277
call void @llvm.assume(i1 true) ["align"(ptr %b, i64 128)]
278278
tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a, ptr align 4 %b, i64 64, i1 false)
279-
ret i32 undef
279+
ret i32 0
280280

281281
}
282282

llvm/test/Transforms/ArgumentPromotion/crash.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ bb:
5555

5656
define internal i1 @barney(ptr %arg) {
5757
bb:
58-
ret i1 undef
58+
ret i1 poison
5959
}
6060

6161
define i32 @test_inf_promote_caller(i32 %arg) {

llvm/test/Transforms/ArgumentPromotion/min-legal-vector-width.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
; RUN: opt < %s -passes=argpromotion -S | FileCheck %s
22

33
; CHECK-LABEL: define i32 @foo() #0 {
4-
; CHECK-NEXT: %.val = load <32 x half>, ptr undef, align 4
4+
; CHECK-NEXT: %.val = load <32 x half>, ptr poison, align 4
55
; CHECK-NEXT: call void @bar(<32 x half> %.val)
66
; CHECK-NEXT: ret i32 0
77
; CHECK-NEXT: }
@@ -13,7 +13,7 @@
1313
; CHECK: attributes #0 = { uwtable "min-legal-vector-width"="512" }
1414

1515
define i32 @foo() #0 {
16-
call void @bar(ptr undef)
16+
call void @bar(ptr poison)
1717
ret i32 0
1818
}
1919

llvm/test/Transforms/ArgumentPromotion/pr32917.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ define i32 @fn2() local_unnamed_addr {
1313
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr i8, ptr [[TMP3]], i64 -4
1414
; CHECK-NEXT: [[DOTVAL:%.*]] = load i32, ptr [[TMP4]], align 4
1515
; CHECK-NEXT: call fastcc void @fn1(i32 [[DOTVAL]])
16-
; CHECK-NEXT: ret i32 undef
16+
; CHECK-NEXT: ret i32 0
1717
;
1818
%1 = load i32, ptr @b, align 4
1919
%2 = sext i32 %1 to i64
2020
%3 = inttoptr i64 %2 to ptr
2121
call fastcc void @fn1(ptr %3)
22-
ret i32 undef
22+
ret i32 0
2323
}
2424

2525
define internal fastcc void @fn1(ptr nocapture readonly) unnamed_addr {

0 commit comments

Comments
 (0)