diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/basic-block-sections-bb-hash.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/basic-block-sections-bb-hash.ll | 39 | 
1 files changed, 39 insertions, 0 deletions
| diff --git a/llvm/test/CodeGen/X86/basic-block-sections-bb-hash.ll b/llvm/test/CodeGen/X86/basic-block-sections-bb-hash.ll new file mode 100644 index 0000000..293b48d --- /dev/null +++ b/llvm/test/CodeGen/X86/basic-block-sections-bb-hash.ll @@ -0,0 +1,39 @@ +;; BB section test with basic block hashes. + +;; basic block sections Profile with bb hashes +; 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: echo 'h 0:64863A11B5CA0000 1:54F1E80D6B270006 2:54F1F4E66B270008 3:C8BC6041A2CB0009' >> %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 | 
