11; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes --version 5
2- ; RUN: opt < %s -passes=function-attrs -S | FileCheck %s
3- target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
4- target triple = "aarch64-unknown-linux-gnu"
2+ ; RUN: opt < %s -passes="lto<O2>" -S | FileCheck %s
53
64; This test includes a call graph with multiple SCCs. The purpose of this is
75; to check that norecurse is not added when a function is part of non-singular
@@ -15,8 +13,8 @@ target triple = "aarch64-unknown-linux-gnu"
1513; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
1614define internal void @bar1 () local_unnamed_addr #0 {
1715; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
18- ; CHECK-LABEL: define internal void @bar1(
19- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0:[0-9]+]] {
16+ ; CHECK-LABEL: define internal fastcc void @bar1(
17+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0:[0-9]+]] {
2018; CHECK-NEXT: [[ENTRY:.*:]]
2119; CHECK-NEXT: [[CALL:%.*]] = tail call i32 @main()
2220; CHECK-NEXT: ret void
@@ -32,9 +30,9 @@ define dso_local noundef i32 @main() local_unnamed_addr #0 {
3230; CHECK-LABEL: define dso_local noundef i32 @main(
3331; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
3432; CHECK-NEXT: [[ENTRY:.*:]]
35- ; CHECK-NEXT: tail call void @foo()
36- ; CHECK-NEXT: tail call void @bar2()
37- ; CHECK-NEXT: tail call void @baz()
33+ ; CHECK-NEXT: tail call fastcc void @foo()
34+ ; CHECK-NEXT: tail call fastcc void @bar2()
35+ ; CHECK-NEXT: tail call fastcc void @baz()
3836; CHECK-NEXT: ret i32 0
3937;
4038entry:
@@ -47,10 +45,10 @@ entry:
4745; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
4846define internal void @foo1 () local_unnamed_addr #0 {
4947; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
50- ; CHECK-LABEL: define internal void @foo1(
51- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
48+ ; CHECK-LABEL: define internal fastcc void @foo1(
49+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
5250; CHECK-NEXT: [[ENTRY:.*:]]
53- ; CHECK-NEXT: tail call void @bar1()
51+ ; CHECK-NEXT: tail call fastcc void @bar1()
5452; CHECK-NEXT: ret void
5553;
5654entry:
@@ -61,10 +59,10 @@ entry:
6159; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
6260define internal void @bar () local_unnamed_addr #0 {
6361; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
64- ; CHECK-LABEL: define internal void @bar(
65- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
62+ ; CHECK-LABEL: define internal fastcc void @bar(
63+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
6664; CHECK-NEXT: [[ENTRY:.*:]]
67- ; CHECK-NEXT: tail call void @foo1()
65+ ; CHECK-NEXT: tail call fastcc void @foo1()
6866; CHECK-NEXT: ret void
6967;
7068entry:
@@ -75,10 +73,10 @@ entry:
7573; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
7674define internal void @foo () local_unnamed_addr #0 {
7775; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
78- ; CHECK-LABEL: define internal void @foo(
79- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
76+ ; CHECK-LABEL: define internal fastcc void @foo(
77+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
8078; CHECK-NEXT: [[ENTRY:.*:]]
81- ; CHECK-NEXT: tail call void @bar()
79+ ; CHECK-NEXT: tail call fastcc void @bar()
8280; CHECK-NEXT: ret void
8381;
8482entry:
@@ -89,10 +87,10 @@ entry:
8987; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
9088define internal void @bar4 () local_unnamed_addr #0 {
9189; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
92- ; CHECK-LABEL: define internal void @bar4(
93- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
90+ ; CHECK-LABEL: define internal fastcc void @bar4(
91+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
9492; CHECK-NEXT: [[ENTRY:.*:]]
95- ; CHECK-NEXT: tail call void @bar2()
93+ ; CHECK-NEXT: tail call fastcc void @bar2()
9694; CHECK-NEXT: ret void
9795;
9896entry:
@@ -103,10 +101,10 @@ entry:
103101; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
104102define internal void @bar2 () local_unnamed_addr #0 {
105103; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
106- ; CHECK-LABEL: define internal void @bar2(
107- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
104+ ; CHECK-LABEL: define internal fastcc void @bar2(
105+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
108106; CHECK-NEXT: [[ENTRY:.*:]]
109- ; CHECK-NEXT: tail call void @bar3()
107+ ; CHECK-NEXT: tail call fastcc void @bar3()
110108; CHECK-NEXT: ret void
111109;
112110entry:
@@ -117,10 +115,10 @@ entry:
117115; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
118116define internal void @bar3 () local_unnamed_addr #0 {
119117; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
120- ; CHECK-LABEL: define internal void @bar3(
121- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
118+ ; CHECK-LABEL: define internal fastcc void @bar3(
119+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
122120; CHECK-NEXT: [[ENTRY:.*:]]
123- ; CHECK-NEXT: tail call void @bar4()
121+ ; CHECK-NEXT: tail call fastcc void @bar4()
124122; CHECK-NEXT: ret void
125123;
126124entry:
@@ -131,10 +129,10 @@ entry:
131129; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
132130define internal void @fun () local_unnamed_addr #0 {
133131; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
134- ; CHECK-LABEL: define internal void @fun(
135- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
132+ ; CHECK-LABEL: define internal fastcc void @fun(
133+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
136134; CHECK-NEXT: [[ENTRY:.*:]]
137- ; CHECK-NEXT: tail call void @baz()
135+ ; CHECK-NEXT: tail call fastcc void @baz()
138136; CHECK-NEXT: ret void
139137;
140138entry:
@@ -145,15 +143,15 @@ entry:
145143; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
146144define internal void @baz () local_unnamed_addr #0 {
147145; CHECK: Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
148- ; CHECK-LABEL: define internal void @baz(
149- ; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
146+ ; CHECK-LABEL: define internal fastcc void @baz(
147+ ; CHECK-SAME: ) unnamed_addr #[[ATTR0]] {
150148; CHECK-NEXT: [[ENTRY:.*:]]
151- ; CHECK-NEXT: tail call void @fun()
149+ ; CHECK-NEXT: tail call fastcc void @fun()
152150; CHECK-NEXT: ret void
153151;
154152entry:
155153 tail call void @fun ()
156154 ret void
157155}
158156
159- attributes #0 = { nofree noinline nosync nounwind memory(none) uwtable "frame-pointer" = "non-leaf" "no-trapping-math" = "true" "stack-protector-buffer-size" = "8" "target-cpu" = "generic" "target-features" = "+fp-armv8,+neon,+outline-atomics,+v8a,-fmv" }
157+ attributes #0 = { nofree noinline nosync nounwind memory(none) uwtable }
0 commit comments