[llvm] d80eb92 - [llvm] Remove `undef` from `llvm/test/Transforms` tests (#123889)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 22 06:47:21 PST 2025
Author: Yeaseen
Date: 2025-01-22T14:47:15Z
New Revision: d80eb928c78ab3f3a3320014b2b7d513642b1a7e
URL: https://github.com/llvm/llvm-project/commit/d80eb928c78ab3f3a3320014b2b7d513642b1a7e
DIFF: https://github.com/llvm/llvm-project/commit/d80eb928c78ab3f3a3320014b2b7d513642b1a7e.diff
LOG: [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
Added:
Modified:
llvm/test/Transforms/ADCE/2017-08-21-DomTree-deletions.ll
llvm/test/Transforms/ADCE/preserve-memoryssa-if-only-remove-debug.ll
llvm/test/Transforms/AddDiscriminators/inlined.ll
llvm/test/Transforms/AddDiscriminators/invoke.ll
llvm/test/Transforms/AggressiveInstCombine/AArch64/combine_ignore_debug.ll
llvm/test/Transforms/AggressiveInstCombine/trunc_unreachable_bb.ll
llvm/test/Transforms/AggressiveInstCombine/trunc_vector_instrs.ll
llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
llvm/test/Transforms/ArgumentPromotion/crash.ll
llvm/test/Transforms/ArgumentPromotion/min-legal-vector-width.ll
llvm/test/Transforms/ArgumentPromotion/pr32917.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/ADCE/2017-08-21-DomTree-deletions.ll b/llvm/test/Transforms/ADCE/2017-08-21-DomTree-deletions.ll
index 47b33cb6644364..1c7a460005a1f2 100644
--- a/llvm/test/Transforms/ADCE/2017-08-21-DomTree-deletions.ll
+++ b/llvm/test/Transforms/ADCE/2017-08-21-DomTree-deletions.ll
@@ -1,11 +1,11 @@
; RUN: opt < %s -passes=adce | llvm-dis
; RUN: opt < %s -passes=adce -verify-dom-info | llvm-dis
-define void @foo() {
+define void @foo(i32 %arg) {
entry:
br label %switch
switch: ; preds = %entry
- switch i32 undef, label %default [
+ switch i32 %arg, label %default [
i32 2, label %two
i32 5, label %five
i32 4, label %four
diff --git a/llvm/test/Transforms/ADCE/preserve-memoryssa-if-only-remove-debug.ll b/llvm/test/Transforms/ADCE/preserve-memoryssa-if-only-remove-debug.ll
index 339bc758344f9f..0c851e78e1501e 100644
--- a/llvm/test/Transforms/ADCE/preserve-memoryssa-if-only-remove-debug.ll
+++ b/llvm/test/Transforms/ADCE/preserve-memoryssa-if-only-remove-debug.ll
@@ -33,7 +33,7 @@
define i16 @test1() {
entry:
- call void @llvm.dbg.declare(metadata ptr undef, metadata !4, metadata !DIExpression()), !dbg !16
+ call void @llvm.dbg.declare(metadata ptr poison, metadata !4, metadata !DIExpression()), !dbg !16
ret i16 0
}
diff --git a/llvm/test/Transforms/AddDiscriminators/inlined.ll b/llvm/test/Transforms/AddDiscriminators/inlined.ll
index 3ed0da9a723464..26faf57b55d0ba 100644
--- a/llvm/test/Transforms/AddDiscriminators/inlined.ll
+++ b/llvm/test/Transforms/AddDiscriminators/inlined.ll
@@ -24,11 +24,11 @@ for.cond: ; preds = %for.cond, %entry
}
; Function Attrs: nounwind ssp
-define i32 @g() local_unnamed_addr #1 !dbg !12 {
+define i32 @g(i32 %arg) local_unnamed_addr #1 !dbg !12 {
entry:
%0 = tail call i64 @llvm.objectsize.i64.p0(ptr inttoptr (i64 1 to ptr), i1 false), !dbg !22
%call = tail call ptr @__memset_chk(ptr null, i32 0, i64 0, i64 %0) #2, !dbg !23
- ret i32 undef, !dbg !24
+ ret i32 %arg, !dbg !24
}
; Function Attrs: nounwind
diff --git a/llvm/test/Transforms/AddDiscriminators/invoke.ll b/llvm/test/Transforms/AddDiscriminators/invoke.ll
index 23f04c170eff39..d39014de1f00f0 100644
--- a/llvm/test/Transforms/AddDiscriminators/invoke.ll
+++ b/llvm/test/Transforms/AddDiscriminators/invoke.ll
@@ -54,7 +54,7 @@ try.cont: ; preds = %invoke.cont
eh.resume: ; preds = %invoke.cont2
%exn3 = load ptr, ptr %exn.slot, align 8, !dbg !20
%sel = load i32, ptr %ehselector.slot, align 4, !dbg !20
- %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn3, 0, !dbg !20
+ %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn3, 0, !dbg !20
%lpad.val4 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1, !dbg !20
resume { ptr, i32 } %lpad.val4, !dbg !20
diff --git a/llvm/test/Transforms/AggressiveInstCombine/AArch64/combine_ignore_debug.ll b/llvm/test/Transforms/AggressiveInstCombine/AArch64/combine_ignore_debug.ll
index 317dd88f611f41..d09d43c936257b 100644
--- a/llvm/test/Transforms/AggressiveInstCombine/AArch64/combine_ignore_debug.ll
+++ b/llvm/test/Transforms/AggressiveInstCombine/AArch64/combine_ignore_debug.ll
@@ -16,7 +16,7 @@ define void @test() {
; DBG-LABEL: define void @test() {
; DBG-NEXT: entry:
; DBG-NEXT: [[L1:%.*]] = load i32, ptr @e, align 1
-; DBG-NEXT: #dbg_value(i32 undef, [[META3:![0-9]+]], !DIExpression(), [[META5:![0-9]+]])
+; DBG-NEXT: #dbg_value(i32 poison, [[META3:![0-9]+]], !DIExpression(), [[META5:![0-9]+]])
; DBG-NEXT: store i32 [[L1]], ptr @l, align 1
; DBG-NEXT: ret void
;
@@ -28,7 +28,7 @@ define void @test() {
;
entry:
%l1 = load i16, ptr @e, align 1
- call void @llvm.dbg.value(metadata i32 undef, metadata !3, metadata !DIExpression()), !dbg !5
+ call void @llvm.dbg.value(metadata i32 poison, metadata !3, metadata !DIExpression()), !dbg !5
%l2 = load i16, ptr getelementptr inbounds (%s, ptr @e, i16 0, i32 1), align 1
%e2 = zext i16 %l2 to i32
%e1 = zext i16 %l1 to i32
diff --git a/llvm/test/Transforms/AggressiveInstCombine/trunc_unreachable_bb.ll b/llvm/test/Transforms/AggressiveInstCombine/trunc_unreachable_bb.ll
index a36163014de391..3d8a679b31dffd 100644
--- a/llvm/test/Transforms/AggressiveInstCombine/trunc_unreachable_bb.ll
+++ b/llvm/test/Transforms/AggressiveInstCombine/trunc_unreachable_bb.ll
@@ -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
; Aggressive Instcombine should be able ignore unreachable basic block.
-define void @func_20() {
+define void @func_20(i32 %arg) {
; CHECK-LABEL: @func_20(
; CHECK-NEXT: for.body94:
; CHECK-NEXT: unreachable
; CHECK: for.cond641:
-; CHECK-NEXT: [[OR722:%.*]] = or i32 [[OR722]], undef
+; CHECK-NEXT: [[OR722:%.*]] = or i32 [[OR722]], %arg
; CHECK-NEXT: [[OR723:%.*]] = or i32 [[OR722]], 1
; CHECK-NEXT: [[CONV724:%.*]] = trunc i32 [[OR723]] to i16
; CHECK-NEXT: br label [[FOR_COND641:%.*]]
@@ -18,19 +18,19 @@ for.body94:
unreachable
for.cond641:
- %or722 = or i32 %or722, undef
+ %or722 = or i32 %or722, %arg
%or723 = or i32 %or722, 1
%conv724 = trunc i32 %or723 to i16
br label %for.cond641
}
-define void @func_21() {
+define void @func_21(i32 %arg) {
; CHECK-LABEL: @func_21(
; CHECK-NEXT: for.body94:
; CHECK-NEXT: unreachable
; CHECK: for.cond641:
-; CHECK-NEXT: [[OR722:%.*]] = or i32 [[A:%.*]], undef
-; CHECK-NEXT: [[A]] = or i32 [[OR722]], undef
+; CHECK-NEXT: [[OR722:%.*]] = or i32 [[A:%.*]], %arg
+; CHECK-NEXT: [[A]] = or i32 [[OR722]], %arg
; CHECK-NEXT: [[OR723:%.*]] = or i32 [[OR722]], 1
; CHECK-NEXT: [[CONV724:%.*]] = trunc i32 [[OR723]] to i16
; CHECK-NEXT: br label [[FOR_COND641:%.*]]
@@ -39,8 +39,8 @@ for.body94:
unreachable
for.cond641:
- %or722 = or i32 %a, undef
- %a = or i32 %or722, undef
+ %or722 = or i32 %a, %arg
+ %a = or i32 %or722, %arg
%or723 = or i32 %or722, 1
%conv724 = trunc i32 %or723 to i16
br label %for.cond641
diff --git a/llvm/test/Transforms/AggressiveInstCombine/trunc_vector_instrs.ll b/llvm/test/Transforms/AggressiveInstCombine/trunc_vector_instrs.ll
index 4182e748c713b6..d431c8ebaa56a9 100644
--- a/llvm/test/Transforms/AggressiveInstCombine/trunc_vector_instrs.ll
+++ b/llvm/test/Transforms/AggressiveInstCombine/trunc_vector_instrs.ll
@@ -19,12 +19,12 @@ define <4 x i16> @shuffle(<2 x i8> %a, <2 x i8> %b) {
define <2 x i16> @unary_shuffle(<2 x i8> %a) {
; CHECK-LABEL: @unary_shuffle(
; CHECK-NEXT: [[ZEXTA:%.*]] = zext <2 x i8> [[A:%.*]] to <2 x i32>
-; CHECK-NEXT: [[SHUF:%.*]] = shufflevector <2 x i32> [[ZEXTA]], <2 x i32> undef, <2 x i32> <i32 1, i32 0>
+; CHECK-NEXT: [[SHUF:%.*]] = shufflevector <2 x i32> [[ZEXTA]], <2 x i32> poison, <2 x i32> <i32 1, i32 0>
; CHECK-NEXT: [[TRUNC:%.*]] = trunc <2 x i32> [[SHUF]] to <2 x i16>
; CHECK-NEXT: ret <2 x i16> [[TRUNC]]
;
%zexta = zext <2 x i8> %a to <2 x i32>
- %shuf = shufflevector <2 x i32> %zexta, <2 x i32> undef, <2 x i32> <i32 1, i32 0>
+ %shuf = shufflevector <2 x i32> %zexta, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
%trunc = trunc <2 x i32> %shuf to <2 x i16>
ret <2 x i16> %trunc
}
diff --git a/llvm/test/Transforms/AlignmentFromAssumptions/simple.ll b/llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
index 268aca093a698e..42f36f1abcef15 100644
--- a/llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
+++ b/llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
@@ -327,12 +327,12 @@ define i32 @moo(ptr nocapture %a) {
; CHECK-NEXT: entry:
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i16 32) ]
; CHECK-NEXT: tail call void @llvm.memset.p0.i64(ptr align 32 [[A]], i8 0, i64 64, i1 false)
-; CHECK-NEXT: ret i32 undef
+; CHECK-NEXT: ret i32 0
;
entry:
tail call void @llvm.assume(i1 true) ["align"(ptr %a, i16 32)]
tail call void @llvm.memset.p0.i64(ptr align 4 %a, i8 0, i64 64, i1 false)
- ret i32 undef
+ ret i32 0
}
define i32 @moo2(ptr nocapture %a, ptr nocapture %b) {
@@ -342,13 +342,13 @@ define i32 @moo2(ptr nocapture %a, ptr nocapture %b) {
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[B]], i32 128) ]
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i16 32) ]
; CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64(ptr align 32 [[A]], ptr align 128 [[B]], i64 64, i1 false)
-; CHECK-NEXT: ret i32 undef
+; CHECK-NEXT: ret i32 0
;
entry:
tail call void @llvm.assume(i1 true) ["align"(ptr %b, i32 128)]
tail call void @llvm.assume(i1 true) ["align"(ptr %a, i16 32)]
tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a, ptr align 4 %b, i64 64, i1 false)
- ret i32 undef
+ ret i32 0
}
define i32 @moo3(ptr nocapture %a, ptr nocapture %b) {
@@ -357,12 +357,12 @@ define i32 @moo3(ptr nocapture %a, ptr nocapture %b) {
; CHECK-NEXT: entry:
; CHECK-NEXT: tail call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i16 32), "align"(ptr [[B]], i32 128) ]
; CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64(ptr align 32 [[A]], ptr align 128 [[B]], i64 64, i1 false)
-; CHECK-NEXT: ret i32 undef
+; CHECK-NEXT: ret i32 0
;
entry:
tail call void @llvm.assume(i1 true) ["align"(ptr %a, i16 32), "align"(ptr %b, i32 128)]
tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a, ptr align 4 %b, i64 64, i1 false)
- ret i32 undef
+ ret i32 0
}
diff --git a/llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll b/llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
index 236428b2632505..4b20673c1ed775 100644
--- a/llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
+++ b/llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
@@ -254,12 +254,12 @@ define i32 @moo(ptr nocapture %a) nounwind uwtable {
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i64 32) ]
; CHECK-NEXT: tail call void @llvm.memset.p0.i64(ptr align 32 [[A]], i8 0, i64 64, i1 false)
-; CHECK-NEXT: ret i32 undef
+; CHECK-NEXT: ret i32 0
;
entry:
call void @llvm.assume(i1 true) ["align"(ptr %a, i64 32)]
tail call void @llvm.memset.p0.i64(ptr align 4 %a, i8 0, i64 64, i1 false)
- ret i32 undef
+ ret i32 0
}
@@ -270,13 +270,13 @@ define i32 @moo2(ptr nocapture %a, ptr nocapture %b) nounwind uwtable {
; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i64 32) ]
; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[B]], i64 128) ]
; CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64(ptr align 32 [[A]], ptr align 128 [[B]], i64 64, i1 false)
-; CHECK-NEXT: ret i32 undef
+; CHECK-NEXT: ret i32 0
;
entry:
call void @llvm.assume(i1 true) ["align"(ptr %a, i64 32)]
call void @llvm.assume(i1 true) ["align"(ptr %b, i64 128)]
tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a, ptr align 4 %b, i64 64, i1 false)
- ret i32 undef
+ ret i32 0
}
diff --git a/llvm/test/Transforms/ArgumentPromotion/crash.ll b/llvm/test/Transforms/ArgumentPromotion/crash.ll
index 12caae4dbef8df..9ec969cd9a606b 100644
--- a/llvm/test/Transforms/ArgumentPromotion/crash.ll
+++ b/llvm/test/Transforms/ArgumentPromotion/crash.ll
@@ -55,7 +55,7 @@ bb:
define internal i1 @barney(ptr %arg) {
bb:
- ret i1 undef
+ ret i1 poison
}
define i32 @test_inf_promote_caller(i32 %arg) {
diff --git a/llvm/test/Transforms/ArgumentPromotion/min-legal-vector-width.ll b/llvm/test/Transforms/ArgumentPromotion/min-legal-vector-width.ll
index a5a0fc0cf186b7..eb8181c2bd8100 100644
--- a/llvm/test/Transforms/ArgumentPromotion/min-legal-vector-width.ll
+++ b/llvm/test/Transforms/ArgumentPromotion/min-legal-vector-width.ll
@@ -1,7 +1,7 @@
; RUN: opt < %s -passes=argpromotion -S | FileCheck %s
; CHECK-LABEL: define i32 @foo() #0 {
-; CHECK-NEXT: %.val = load <32 x half>, ptr undef, align 4
+; CHECK-NEXT: %.val = load <32 x half>, ptr poison, align 4
; CHECK-NEXT: call void @bar(<32 x half> %.val)
; CHECK-NEXT: ret i32 0
; CHECK-NEXT: }
@@ -13,7 +13,7 @@
; CHECK: attributes #0 = { uwtable "min-legal-vector-width"="512" }
define i32 @foo() #0 {
- call void @bar(ptr undef)
+ call void @bar(ptr poison)
ret i32 0
}
diff --git a/llvm/test/Transforms/ArgumentPromotion/pr32917.ll b/llvm/test/Transforms/ArgumentPromotion/pr32917.ll
index dd089a910f5a31..0a996dd3ad2794 100644
--- a/llvm/test/Transforms/ArgumentPromotion/pr32917.ll
+++ b/llvm/test/Transforms/ArgumentPromotion/pr32917.ll
@@ -13,13 +13,13 @@ define i32 @fn2() local_unnamed_addr {
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr i8, ptr [[TMP3]], i64 -4
; CHECK-NEXT: [[DOTVAL:%.*]] = load i32, ptr [[TMP4]], align 4
; CHECK-NEXT: call fastcc void @fn1(i32 [[DOTVAL]])
-; CHECK-NEXT: ret i32 undef
+; CHECK-NEXT: ret i32 0
;
%1 = load i32, ptr @b, align 4
%2 = sext i32 %1 to i64
%3 = inttoptr i64 %2 to ptr
call fastcc void @fn1(ptr %3)
- ret i32 undef
+ ret i32 0
}
define internal fastcc void @fn1(ptr nocapture readonly) unnamed_addr {
More information about the llvm-commits
mailing list