[llvm] e65882f - [InstCombine][InferFunctionAttrs] Add tests for inferring `cold` on exit/abort; NFC
Noah Goldstein via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 29 09:57:06 PDT 2024
Author: Noah Goldstein
Date: 2024-07-30T00:56:53+08:00
New Revision: e65882fec9689b2232575530bab0776d7c303dae
URL: https://github.com/llvm/llvm-project/commit/e65882fec9689b2232575530bab0776d7c303dae
DIFF: https://github.com/llvm/llvm-project/commit/e65882fec9689b2232575530bab0776d7c303dae.diff
LOG: [InstCombine][InferFunctionAttrs] Add tests for inferring `cold` on exit/abort; NFC
Added:
llvm/test/Transforms/InstCombine/lib-call-exit.ll
Modified:
llvm/test/Transforms/InferFunctionAttrs/annotate.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InferFunctionAttrs/annotate.ll b/llvm/test/Transforms/InferFunctionAttrs/annotate.ll
index 79962b45d253a..9a5b902210009 100644
--- a/llvm/test/Transforms/InferFunctionAttrs/annotate.ll
+++ b/llvm/test/Transforms/InferFunctionAttrs/annotate.ll
@@ -1088,6 +1088,8 @@ declare i32 @vsscanf(ptr, ptr, ptr)
; CHECK: declare noundef i64 @write(i32 noundef, ptr nocapture noundef readonly, i64 noundef) [[NOFREE]]
declare i64 @write(i32, ptr, i64)
+; CHECK: declare void @abort()
+declare void @abort()
; memset_pattern{4,8,16} aren't available everywhere.
; CHECK-DARWIN: declare void @memset_pattern4(ptr nocapture writeonly, ptr nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
diff --git a/llvm/test/Transforms/InstCombine/lib-call-exit.ll b/llvm/test/Transforms/InstCombine/lib-call-exit.ll
new file mode 100644
index 0000000000000..fcdec9b9fe093
--- /dev/null
+++ b/llvm/test/Transforms/InstCombine/lib-call-exit.ll
@@ -0,0 +1,42 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 5
+; RUN: opt < %s -passes=instcombine -S | FileCheck %s
+
+declare void @exit(i32)
+declare void @_Exit(i32)
+
+define void @call_exit_0() {
+; CHECK-LABEL: define void @call_exit_0() {
+; CHECK-NEXT: call void @exit(i32 0)
+; CHECK-NEXT: ret void
+;
+ call void @exit(i32 0)
+ ret void
+}
+
+define void @call_exit_1() {
+; CHECK-LABEL: define void @call_exit_1() {
+; CHECK-NEXT: call void @exit(i32 1)
+; CHECK-NEXT: ret void
+;
+ call void @exit(i32 1)
+ ret void
+}
+
+define void @call__Exit_m1() {
+; CHECK-LABEL: define void @call__Exit_m1() {
+; CHECK-NEXT: call void @_Exit(i32 -1)
+; CHECK-NEXT: ret void
+;
+ call void @_Exit(i32 -1)
+ ret void
+}
+
+define void @call__Exit_N(i32 %N) {
+; CHECK-LABEL: define void @call__Exit_N(
+; CHECK-SAME: i32 [[N:%.*]]) {
+; CHECK-NEXT: call void @_Exit(i32 [[N]])
+; CHECK-NEXT: ret void
+;
+ call void @_Exit(i32 %N)
+ ret void
+}
More information about the llvm-commits
mailing list