1- ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
1+ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals
22; RUN: opt < %s -passes='require<profile-summary>,chr' -S | FileCheck %s
33
44declare void @foo ()
@@ -14,21 +14,21 @@ define void @test_chr_with_lifetimes(ptr %i) !prof !14 {
1414; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I:%.*]], align 4
1515; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[TMP0]], 0
1616; CHECK-NEXT: [[TMP9:%.*]] = freeze i1 [[TMP1]]
17- ; CHECK-NEXT: [[TMP10 :%.*]] = select i1 true, i1 [[TMP9]], i1 false
17+ ; CHECK-NEXT: [[TMP8 :%.*]] = select i1 true, i1 [[TMP9]], i1 false, !prof [[PROF15:![0-9]+]]
1818; CHECK-NEXT: [[TMP11:%.*]] = freeze i1 [[TMP1]]
19- ; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP10 ]], i1 [[TMP11]], i1 false
20- ; CHECK-NEXT: br i1 [[TMP5]], label [[ENTRY_SPLIT:%.*]], label [[ENTRY_SPLIT_NONCHR:%.*]], !prof [[PROF15 :![0-9]+]]
19+ ; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP8 ]], i1 [[TMP11]], i1 false, !prof [[PROF15]]
20+ ; CHECK-NEXT: br i1 [[TMP5]], label [[ENTRY_SPLIT:%.*]], label [[ENTRY_SPLIT_NONCHR:%.*]], !prof [[PROF16 :![0-9]+]]
2121; CHECK: entry.split:
22- ; CHECK-NEXT: [[TMP6:%.*]] = select i1 true, i64 0, i64 4, !prof [[PROF16 :![0-9]+]]
22+ ; CHECK-NEXT: [[TMP6:%.*]] = select i1 true, i64 0, i64 4, !prof [[PROF17 :![0-9]+]]
2323; CHECK-NEXT: call void @baz(i64 [[TMP6]])
24- ; CHECK-NEXT: br i1 false, label [[BB1:%.*]], label [[BB0:%.*]], !prof [[PROF17 :![0-9]+]]
24+ ; CHECK-NEXT: br i1 false, label [[BB1:%.*]], label [[BB0:%.*]], !prof [[PROF18 :![0-9]+]]
2525; CHECK: bb0:
2626; CHECK-NEXT: call void @foo()
2727; CHECK-NEXT: br label [[BB1]]
2828; CHECK: entry.split.nonchr:
29- ; CHECK-NEXT: [[TMP7:%.*]] = select i1 [[TMP1]], i64 0, i64 4, !prof [[PROF16 ]]
29+ ; CHECK-NEXT: [[TMP7:%.*]] = select i1 [[TMP1]], i64 0, i64 4, !prof [[PROF17 ]]
3030; CHECK-NEXT: call void @baz(i64 [[TMP7]])
31- ; CHECK-NEXT: br i1 [[TMP1]], label [[BB0_NONCHR:%.*]], label [[BB1]], !prof [[PROF16 ]]
31+ ; CHECK-NEXT: br i1 [[TMP1]], label [[BB0_NONCHR:%.*]], label [[BB1]], !prof [[PROF17 ]]
3232; CHECK: bb0.nonchr:
3333; CHECK-NEXT: call void @foo()
3434; CHECK-NEXT: br label [[BB1]]
@@ -83,24 +83,24 @@ define void @test_chr_dynamic_alloca(ptr %i) !prof !14 {
8383; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4
8484; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[TMP0]], 0
8585; CHECK-NEXT: [[TMP2:%.*]] = freeze i1 [[TMP1]]
86- ; CHECK-NEXT: [[TMP3:%.*]] = select i1 true, i1 [[TMP2]], i1 false
86+ ; CHECK-NEXT: [[TMP3:%.*]] = select i1 true, i1 [[TMP2]], i1 false, !prof [[PROF15]]
8787; CHECK-NEXT: [[TMP4:%.*]] = freeze i1 [[TMP1]]
88- ; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP3]], i1 [[TMP4]], i1 false
89- ; CHECK-NEXT: br i1 [[TMP5]], label [[BB4_SPLIT:%.*]], label [[BB4_SPLIT_NONCHR:%.*]], !prof [[PROF15 ]]
88+ ; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP3]], i1 [[TMP4]], i1 false, !prof [[PROF15]]
89+ ; CHECK-NEXT: br i1 [[TMP5]], label [[BB4_SPLIT:%.*]], label [[BB4_SPLIT_NONCHR:%.*]], !prof [[PROF16 ]]
9090; CHECK: bb4.split:
91- ; CHECK-NEXT: [[TMP6:%.*]] = select i1 true, i64 0, i64 4, !prof [[PROF16 ]]
91+ ; CHECK-NEXT: [[TMP6:%.*]] = select i1 true, i64 0, i64 4, !prof [[PROF17 ]]
9292; CHECK-NEXT: [[TEST:%.*]] = alloca i32, align 8
9393; CHECK-NEXT: call void @baz(i64 [[TMP6]])
94- ; CHECK-NEXT: br i1 false, label [[BB1:%.*]], label [[BB0:%.*]], !prof [[PROF17 ]]
94+ ; CHECK-NEXT: br i1 false, label [[BB1:%.*]], label [[BB0:%.*]], !prof [[PROF18 ]]
9595; CHECK: bb0:
9696; CHECK-NEXT: call void @foo()
9797; CHECK-NEXT: store ptr [[TEST]], ptr [[I]], align 8
9898; CHECK-NEXT: br label [[BB1]]
9999; CHECK: bb4.split.nonchr:
100- ; CHECK-NEXT: [[TMP7:%.*]] = select i1 [[TMP1]], i64 0, i64 4, !prof [[PROF16 ]]
100+ ; CHECK-NEXT: [[TMP7:%.*]] = select i1 [[TMP1]], i64 0, i64 4, !prof [[PROF17 ]]
101101; CHECK-NEXT: [[TEST_NONCHR:%.*]] = alloca i32, align 8
102102; CHECK-NEXT: call void @baz(i64 [[TMP7]])
103- ; CHECK-NEXT: br i1 [[TMP1]], label [[BB0_NONCHR:%.*]], label [[BB1]], !prof [[PROF16 ]]
103+ ; CHECK-NEXT: br i1 [[TMP1]], label [[BB0_NONCHR:%.*]], label [[BB1]], !prof [[PROF17 ]]
104104; CHECK: bb0.nonchr:
105105; CHECK-NEXT: call void @foo()
106106; CHECK-NEXT: store ptr [[TEST_NONCHR]], ptr [[I]], align 8
@@ -167,21 +167,21 @@ define void @test_no_move_allocas(ptr %i) !prof !14 {
167167; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I:%.*]], align 4
168168; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[TMP0]], 0
169169; CHECK-NEXT: [[TMP2:%.*]] = freeze i1 [[TMP1]]
170- ; CHECK-NEXT: [[TMP3:%.*]] = select i1 true, i1 [[TMP2]], i1 false
170+ ; CHECK-NEXT: [[TMP3:%.*]] = select i1 true, i1 [[TMP2]], i1 false, !prof [[PROF15]]
171171; CHECK-NEXT: [[TMP4:%.*]] = freeze i1 [[TMP1]]
172- ; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP3]], i1 [[TMP4]], i1 false
173- ; CHECK-NEXT: br i1 [[TMP5]], label [[ENTRY_SPLIT:%.*]], label [[ENTRY_SPLIT_NONCHR:%.*]], !prof [[PROF15 ]]
172+ ; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP3]], i1 [[TMP4]], i1 false, !prof [[PROF15]]
173+ ; CHECK-NEXT: br i1 [[TMP5]], label [[ENTRY_SPLIT:%.*]], label [[ENTRY_SPLIT_NONCHR:%.*]], !prof [[PROF16 ]]
174174; CHECK: entry.split:
175- ; CHECK-NEXT: [[TMP6:%.*]] = select i1 true, i64 0, i64 4, !prof [[PROF16 ]]
175+ ; CHECK-NEXT: [[TMP6:%.*]] = select i1 true, i64 0, i64 4, !prof [[PROF17 ]]
176176; CHECK-NEXT: call void @baz(i64 [[TMP6]])
177- ; CHECK-NEXT: br i1 false, label [[BB1:%.*]], label [[BB0:%.*]], !prof [[PROF17 ]]
177+ ; CHECK-NEXT: br i1 false, label [[BB1:%.*]], label [[BB0:%.*]], !prof [[PROF18 ]]
178178; CHECK: bb0:
179179; CHECK-NEXT: call void @foo()
180180; CHECK-NEXT: br label [[BB1]]
181181; CHECK: entry.split.nonchr:
182- ; CHECK-NEXT: [[TMP7:%.*]] = select i1 [[TMP1]], i64 0, i64 4, !prof [[PROF16 ]]
182+ ; CHECK-NEXT: [[TMP7:%.*]] = select i1 [[TMP1]], i64 0, i64 4, !prof [[PROF17 ]]
183183; CHECK-NEXT: call void @baz(i64 [[TMP7]])
184- ; CHECK-NEXT: br i1 [[TMP1]], label [[BB0_NONCHR:%.*]], label [[BB1]], !prof [[PROF16 ]]
184+ ; CHECK-NEXT: br i1 [[TMP1]], label [[BB0_NONCHR:%.*]], label [[BB1]], !prof [[PROF17 ]]
185185; CHECK: bb0.nonchr:
186186; CHECK-NEXT: call void @foo()
187187; CHECK-NEXT: br label [[BB1]]
@@ -242,4 +242,26 @@ bb3:
242242
243243!14 = !{!"function_entry_count" , i64 100 }
244244!15 = !{!"branch_weights" , i32 0 , i32 1 }
245- ; CHECK: !15 = !{!"branch_weights", i32 1000, i32 0}
245+ ;.
246+ ; CHECK: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
247+ ;.
248+ ; CHECK: [[META0:![0-9]+]] = !{i32 1, !"ProfileSummary", [[META1:![0-9]+]]}
249+ ; CHECK: [[META1]] = !{[[META2:![0-9]+]], [[META3:![0-9]+]], [[META4:![0-9]+]], [[META5:![0-9]+]], [[META6:![0-9]+]], [[META7:![0-9]+]], [[META8:![0-9]+]], [[META9:![0-9]+]]}
250+ ; CHECK: [[META2]] = !{!"ProfileFormat", !"InstrProf"}
251+ ; CHECK: [[META3]] = !{!"TotalCount", i64 10000}
252+ ; CHECK: [[META4]] = !{!"MaxCount", i64 10}
253+ ; CHECK: [[META5]] = !{!"MaxInternalCount", i64 1}
254+ ; CHECK: [[META6]] = !{!"MaxFunctionCount", i64 1000}
255+ ; CHECK: [[META7]] = !{!"NumCounts", i64 3}
256+ ; CHECK: [[META8]] = !{!"NumFunctions", i64 3}
257+ ; CHECK: [[META9]] = !{!"DetailedSummary", [[META10:![0-9]+]]}
258+ ; CHECK: [[META10]] = !{[[META11:![0-9]+]], [[META12:![0-9]+]], [[META13:![0-9]+]]}
259+ ; CHECK: [[META11]] = !{i32 10000, i64 100, i32 1}
260+ ; CHECK: [[META12]] = !{i32 999000, i64 100, i32 1}
261+ ; CHECK: [[META13]] = !{i32 999999, i64 1, i32 2}
262+ ; CHECK: [[META14:![0-9]+]] = !{!"function_entry_count", i64 100}
263+ ; CHECK: [[PROF15]] = !{!"unknown", !"chr"}
264+ ; CHECK: [[PROF16]] = !{!"branch_weights", i32 1000, i32 0}
265+ ; CHECK: [[PROF17]] = !{!"branch_weights", i32 1, i32 0}
266+ ; CHECK: [[PROF18]] = !{!"branch_weights", i32 0, i32 1}
267+ ;.
0 commit comments