## Test split all block strategy # RUN: llvm-mc --filetype=obj --triple x86_64-unknown-unknown %s -o %t.o # RUN: %clang %cflags %t.o -o %t.exe -Wl,-q # RUN: llvm-bolt %t.exe -o %t.bolt --split-functions --split-strategy=all \ # RUN: --print-split --print-only=chain \ # RUN: 2>&1 | FileCheck %s # CHECK: Binary Function "chain" # CHECK: IsSplit : # CHECK-SAME: {{ 1$}} # CHECK: {{^\.LBB00}} # CHECK: ------- HOT-COLD SPLIT POINT ------- # CHECK: {{^\.LFT0}} # CHECK: ------- HOT-COLD SPLIT POINT ------- # CHECK: {{^\.Ltmp0}} # CHECK: ------- HOT-COLD SPLIT POINT ------- # CHECK: {{^\.Ltmp2}} # CHECK: ------- HOT-COLD SPLIT POINT ------- # CHECK: {{^\.Ltmp3}} # CHECK: ------- HOT-COLD SPLIT POINT ------- # CHECK: {{^\.Ltmp4}} # CHECK: ------- HOT-COLD SPLIT POINT ------- # CHECK: {{^\.Ltmp5}} # CHECK: ------- HOT-COLD SPLIT POINT ------- # CHECK: {{^\.Ltmp1}} # CHECK: End of Function "chain" .text .globl chain .type chain, @function chain: .Lchain_entry: pushq %rbp movq %rsp, %rbp cmpl $2, %edi jge .Lchain_start .Lfast: movl $5, %eax jmp .Lexit .Lchain_start: movl $10, %eax jmp .Lchain1 .Lchain1: addl $1, %eax jmp .Lchain2 .Lchain2: addl $1, %eax jmp .Lchain3 .Lchain3: addl $1, %eax addl $1, %eax addl $1, %eax addl $1, %eax addl $1, %eax jmp .Lchain4 .Lchain4: addl $1, %eax addl $1, %eax addl $1, %eax addl $1, %eax addl $1, %eax jmp .Lexit .Lexit: popq %rbp ret .Lchain_end: .size chain, .Lchain_end-chain .globl main .type main, @function main: pushq %rbp movq %rsp, %rbp movl $1, %edi call chain movl $4, %edi call chain xorl %eax, %eax popq %rbp retq .Lmain_end: .size main, .Lmain_end-main