diff options
Diffstat (limited to 'test/CodeGen/X86/code_placement_cold_loop_blocks.ll')
| -rw-r--r-- | test/CodeGen/X86/code_placement_cold_loop_blocks.ll | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/test/CodeGen/X86/code_placement_cold_loop_blocks.ll b/test/CodeGen/X86/code_placement_cold_loop_blocks.ll deleted file mode 100644 index d7dc8defac3a..000000000000 --- a/test/CodeGen/X86/code_placement_cold_loop_blocks.ll +++ /dev/null @@ -1,122 +0,0 @@ -; RUN: llc -mcpu=corei7 -mtriple=x86_64-linux < %s | FileCheck %s - -define void @foo() !prof !1 { -; Test if a cold block in a loop will be placed at the end of the function -; chain. -; -; CHECK-LABEL: foo: -; CHECK: callq b -; CHECK: callq c -; CHECK: callq e -; CHECK: callq f -; CHECK: callq d - -entry: - br label %header - -header: - call void @b() - %call = call zeroext i1 @a() - br i1 %call, label %if.then, label %if.else, !prof !4 - -if.then: - call void @c() - br label %if.end - -if.else: - call void @d() - br label %if.end - -if.end: - call void @e() - %call2 = call zeroext i1 @a() - br i1 %call2, label %header, label %end, !prof !5 - -end: - call void @f() - ret void -} - -define void @nested_loop_0() !prof !1 { -; Test if a block that is cold in the inner loop but not cold in the outer loop -; will merged to the outer loop chain. -; -; CHECK-LABEL: nested_loop_0: -; CHECK: callq c -; CHECK: callq d -; CHECK: callq e -; CHECK: callq b -; CHECK: callq f - -entry: - br label %header - -header: - call void @b() - %call4 = call zeroext i1 @a() - br i1 %call4, label %header2, label %end - -header2: - call void @c() - %call = call zeroext i1 @a() - br i1 %call, label %if.then, label %if.else, !prof !2 - -if.then: - call void @d() - %call3 = call zeroext i1 @a() - br i1 %call3, label %header2, label %header, !prof !3 - -if.else: - call void @e() - %call2 = call zeroext i1 @a() - br i1 %call2, label %header2, label %header, !prof !3 - -end: - call void @f() - ret void -} - -define void @nested_loop_1() !prof !1 { -; Test if a cold block in an inner loop will be placed at the end of the -; function chain. -; -; CHECK-LABEL: nested_loop_1: -; CHECK: callq b -; CHECK: callq c -; CHECK: callq e -; CHECK: callq d - -entry: - br label %header - -header: - call void @b() - br label %header2 - -header2: - call void @c() - %call = call zeroext i1 @a() - br i1 %call, label %end, label %if.else, !prof !4 - -if.else: - call void @d() - %call2 = call zeroext i1 @a() - br i1 %call2, label %header2, label %header, !prof !5 - -end: - call void @e() - ret void -} - -declare zeroext i1 @a() -declare void @b() -declare void @c() -declare void @d() -declare void @e() -declare void @f() - -!1 = !{!"function_entry_count", i64 1} -!2 = !{!"branch_weights", i32 100, i32 1} -!3 = !{!"branch_weights", i32 1, i32 10} -!4 = !{!"branch_weights", i32 1000, i32 1} -!5 = !{!"branch_weights", i32 100, i32 1} |
