1
1
; 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
5
3
6
4
; This test includes a call graph with multiple SCCs. The purpose of this is
7
5
; 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"
15
13
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
16
14
define internal void @bar1 () local_unnamed_addr #0 {
17
15
; 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]+]] {
20
18
; CHECK-NEXT: [[ENTRY:.*:]]
21
19
; CHECK-NEXT: [[CALL:%.*]] = tail call i32 @main()
22
20
; CHECK-NEXT: ret void
@@ -32,9 +30,9 @@ define dso_local noundef i32 @main() local_unnamed_addr #0 {
32
30
; CHECK-LABEL: define dso_local noundef i32 @main(
33
31
; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
34
32
; 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()
38
36
; CHECK-NEXT: ret i32 0
39
37
;
40
38
entry:
@@ -47,10 +45,10 @@ entry:
47
45
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
48
46
define internal void @foo1 () local_unnamed_addr #0 {
49
47
; 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]] {
52
50
; CHECK-NEXT: [[ENTRY:.*:]]
53
- ; CHECK-NEXT: tail call void @bar1()
51
+ ; CHECK-NEXT: tail call fastcc void @bar1()
54
52
; CHECK-NEXT: ret void
55
53
;
56
54
entry:
@@ -61,10 +59,10 @@ entry:
61
59
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
62
60
define internal void @bar () local_unnamed_addr #0 {
63
61
; 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]] {
66
64
; CHECK-NEXT: [[ENTRY:.*:]]
67
- ; CHECK-NEXT: tail call void @foo1()
65
+ ; CHECK-NEXT: tail call fastcc void @foo1()
68
66
; CHECK-NEXT: ret void
69
67
;
70
68
entry:
@@ -75,10 +73,10 @@ entry:
75
73
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
76
74
define internal void @foo () local_unnamed_addr #0 {
77
75
; 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]] {
80
78
; CHECK-NEXT: [[ENTRY:.*:]]
81
- ; CHECK-NEXT: tail call void @bar()
79
+ ; CHECK-NEXT: tail call fastcc void @bar()
82
80
; CHECK-NEXT: ret void
83
81
;
84
82
entry:
@@ -89,10 +87,10 @@ entry:
89
87
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
90
88
define internal void @bar4 () local_unnamed_addr #0 {
91
89
; 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]] {
94
92
; CHECK-NEXT: [[ENTRY:.*:]]
95
- ; CHECK-NEXT: tail call void @bar2()
93
+ ; CHECK-NEXT: tail call fastcc void @bar2()
96
94
; CHECK-NEXT: ret void
97
95
;
98
96
entry:
@@ -103,10 +101,10 @@ entry:
103
101
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
104
102
define internal void @bar2 () local_unnamed_addr #0 {
105
103
; 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]] {
108
106
; CHECK-NEXT: [[ENTRY:.*:]]
109
- ; CHECK-NEXT: tail call void @bar3()
107
+ ; CHECK-NEXT: tail call fastcc void @bar3()
110
108
; CHECK-NEXT: ret void
111
109
;
112
110
entry:
@@ -117,10 +115,10 @@ entry:
117
115
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
118
116
define internal void @bar3 () local_unnamed_addr #0 {
119
117
; 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]] {
122
120
; CHECK-NEXT: [[ENTRY:.*:]]
123
- ; CHECK-NEXT: tail call void @bar4()
121
+ ; CHECK-NEXT: tail call fastcc void @bar4()
124
122
; CHECK-NEXT: ret void
125
123
;
126
124
entry:
@@ -131,10 +129,10 @@ entry:
131
129
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
132
130
define internal void @fun () local_unnamed_addr #0 {
133
131
; 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]] {
136
134
; CHECK-NEXT: [[ENTRY:.*:]]
137
- ; CHECK-NEXT: tail call void @baz()
135
+ ; CHECK-NEXT: tail call fastcc void @baz()
138
136
; CHECK-NEXT: ret void
139
137
;
140
138
entry:
@@ -145,15 +143,15 @@ entry:
145
143
; Function Attrs: nofree noinline nosync nounwind memory(none) uwtable
146
144
define internal void @baz () local_unnamed_addr #0 {
147
145
; 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]] {
150
148
; CHECK-NEXT: [[ENTRY:.*:]]
151
- ; CHECK-NEXT: tail call void @fun()
149
+ ; CHECK-NEXT: tail call fastcc void @fun()
152
150
; CHECK-NEXT: ret void
153
151
;
154
152
entry:
155
153
tail call void @fun ()
156
154
ret void
157
155
}
158
156
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