| ; BB section test with CFG. | |
| ; | |
| ;; Profile for version 1: | |
| ; RUN: echo 'v1' > %t | |
| ; RUN: echo 'f foo' >> %t | |
| ; RUN: echo 'g 0:10,1:9,2:1 1:8,3:8 2:2,3:2 3:11' >> %t | |
| ; RUN: echo 'c 0 2 3' >> %t | |
| ; | |
| ; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t | FileCheck %s | |
| ; | |
| define void @foo(i1 zeroext) nounwind { | |
| %2 = alloca i8, align 1 | |
| %3 = zext i1 %0 to i8 | |
| store i8 %3, ptr %2, align 1 | |
| %4 = load i8, ptr %2, align 1 | |
| %5 = trunc i8 %4 to i1 | |
| br i1 %5, label %6, label %8 | |
| 6: ; preds = %1 | |
| %7 = call i32 @bar() | |
| br label %10 | |
| 8: ; preds = %1 | |
| %9 = call i32 @baz() | |
| br label %10 | |
| 10: ; preds = %8, %6 | |
| ret void | |
| } | |
| declare i32 @bar() #1 | |
| declare i32 @baz() #1 | |
| ; CHECK: .section .text.foo,"ax",@progbits | |
| ; CHECK: callq baz | |
| ; CHECK: retq | |
| ; CHECK: .section .text.split.foo,"ax",@progbits | |
| ; CHECK: callq bar | |