[DCE] Add tests for non-willreturn function being removed (NFC)
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 18 Feb 2021 20:25:14 +0000 (21:25 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 18 Feb 2021 20:56:20 +0000 (21:56 +0100)
llvm/test/Transforms/ADCE/willreturn.ll [new file with mode: 0644]
llvm/test/Transforms/BDCE/willreturn.ll [new file with mode: 0644]

diff --git a/llvm/test/Transforms/ADCE/willreturn.ll b/llvm/test/Transforms/ADCE/willreturn.ll
new file mode 100644 (file)
index 0000000..c3482a4
--- /dev/null
@@ -0,0 +1,17 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -adce -S < %s | FileCheck %s
+
+declare void @may_not_return(i32) nounwind readnone
+declare void @will_return(i32) nounwind readnone willreturn
+
+; FIXME: This is a miscompile.
+define void @test(i32 %a) {
+; CHECK-LABEL: @test(
+; CHECK-NEXT:    ret void
+;
+  %b = add i32 %a, 1
+  call void @may_not_return(i32 %b)
+  %c = add i32 %b, 1
+  call void @will_return(i32 %c)
+  ret void
+}
diff --git a/llvm/test/Transforms/BDCE/willreturn.ll b/llvm/test/Transforms/BDCE/willreturn.ll
new file mode 100644 (file)
index 0000000..b87ab00
--- /dev/null
@@ -0,0 +1,17 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -bdce -S < %s | FileCheck %s
+
+declare void @may_not_return(i32) nounwind readnone
+declare void @will_return(i32) nounwind readnone willreturn
+
+; FIXME: This is a miscompile.
+define void @test(i32 %a) {
+; CHECK-LABEL: @test(
+; CHECK-NEXT:    ret void
+;
+  %b = add i32 %a, 1
+  call void @may_not_return(i32 %b)
+  %c = add i32 %b, 1
+  call void @will_return(i32 %c)
+  ret void
+}