summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/SimplifyCFG
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-06-25 07:37:27 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-06-25 07:37:27 +0000
commit1fea77c6fc6ab0d5557078656be6c54eba769b42 (patch)
tree018f2212532c40b25e7f9547fc881c10faf96285 /llvm/test/Transforms/SimplifyCFG
parent50e3dfe9d0a79d799e246884768f49c3d96746be (diff)
downloadbcm5719-llvm-1fea77c6fc6ab0d5557078656be6c54eba769b42.tar.gz
bcm5719-llvm-1fea77c6fc6ab0d5557078656be6c54eba769b42.zip
[SimplifyCFG] Replace calls to null/undef with unreachable
Calling null is undefined behavior, a call to undef can be trivially treated as a call to null. llvm-svn: 273776
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG')
-rw-r--r--llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll b/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
index 87872a6a8a1..be612b288b7 100644
--- a/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
+++ b/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
@@ -96,3 +96,34 @@ bb2:
store i8 2, i8* %ptr.2, align 8
ret void
}
+
+define i32 @test7(i1 %X) {
+entry:
+ br i1 %X, label %if, label %else
+
+if:
+ call void undef()
+ br label %else
+
+else:
+ %phi = phi i32 [ 0, %entry ], [ 1, %if ]
+ ret i32 %phi
+}
+; CHECK-LABEL: define i32 @test7(
+; CHECK-NOT: call
+; CHECK: ret i32 0
+
+define void @test8(i1 %X, void ()* %Y) {
+entry:
+ br i1 %X, label %if, label %else
+
+if:
+ br label %else
+
+else:
+ %phi = phi void ()* [ %Y, %entry ], [ null, %if ]
+ call void %phi()
+ ret void
+}
+; CHECK-LABEL: define void @test8(
+; CHECK: call void %Y(
OpenPOWER on IntegriCloud