[llvm] 4045ad6 - [DCE] Add tests for non-willreturn function being removed (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 18 12:56:32 PST 2021


Author: Nikita Popov
Date: 2021-02-18T21:56:20+01:00
New Revision: 4045ad6b0ccd35fe990d51b9bfdd9e7de109bdf5

URL: https://github.com/llvm/llvm-project/commit/4045ad6b0ccd35fe990d51b9bfdd9e7de109bdf5
DIFF: https://github.com/llvm/llvm-project/commit/4045ad6b0ccd35fe990d51b9bfdd9e7de109bdf5.diff

LOG: [DCE] Add tests for non-willreturn function being removed (NFC)

Added: 
    llvm/test/Transforms/ADCE/willreturn.ll
    llvm/test/Transforms/BDCE/willreturn.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/ADCE/willreturn.ll b/llvm/test/Transforms/ADCE/willreturn.ll
new file mode 100644
index 000000000000..c3482a417cb0
--- /dev/null
+++ b/llvm/test/Transforms/ADCE/willreturn.ll
@@ -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
index 000000000000..b87ab0050e7a
--- /dev/null
+++ b/llvm/test/Transforms/BDCE/willreturn.ll
@@ -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
+}


        


More information about the llvm-commits mailing list