85 lines · plain
1## Test split all block strategy2 3# RUN: llvm-mc --filetype=obj --triple x86_64-unknown-unknown %s -o %t.o4# RUN: %clang %cflags %t.o -o %t.exe -Wl,-q5# RUN: llvm-bolt %t.exe -o %t.bolt --split-functions --split-strategy=all \6# RUN: --print-split --print-only=chain \7# RUN: 2>&1 | FileCheck %s8 9# CHECK: Binary Function "chain"10# CHECK: IsSplit :11# CHECK-SAME: {{ 1$}}12# CHECK: {{^\.LBB00}}13# CHECK: ------- HOT-COLD SPLIT POINT -------14# CHECK: {{^\.LFT0}}15# CHECK: ------- HOT-COLD SPLIT POINT -------16# CHECK: {{^\.Ltmp0}}17# CHECK: ------- HOT-COLD SPLIT POINT -------18# CHECK: {{^\.Ltmp2}}19# CHECK: ------- HOT-COLD SPLIT POINT -------20# CHECK: {{^\.Ltmp3}}21# CHECK: ------- HOT-COLD SPLIT POINT -------22# CHECK: {{^\.Ltmp4}}23# CHECK: ------- HOT-COLD SPLIT POINT -------24# CHECK: {{^\.Ltmp5}}25# CHECK: ------- HOT-COLD SPLIT POINT -------26# CHECK: {{^\.Ltmp1}}27# CHECK: End of Function "chain"28 29 .text30 .globl chain31 .type chain, @function32chain:33.Lchain_entry:34 pushq %rbp35 movq %rsp, %rbp36 cmpl $2, %edi37 jge .Lchain_start38.Lfast:39 movl $5, %eax40 jmp .Lexit41.Lchain_start:42 movl $10, %eax43 jmp .Lchain144.Lchain1:45 addl $1, %eax46 jmp .Lchain247.Lchain2:48 addl $1, %eax49 jmp .Lchain350.Lchain3:51 addl $1, %eax52 addl $1, %eax53 addl $1, %eax54 addl $1, %eax55 addl $1, %eax56 jmp .Lchain457.Lchain4:58 addl $1, %eax59 addl $1, %eax60 addl $1, %eax61 addl $1, %eax62 addl $1, %eax63 jmp .Lexit64.Lexit:65 popq %rbp66 ret67.Lchain_end:68 .size chain, .Lchain_end-chain69 70 71 .globl main72 .type main, @function73main:74 pushq %rbp75 movq %rsp, %rbp76 movl $1, %edi77 call chain78 movl $4, %edi79 call chain80 xorl %eax, %eax81 popq %rbp82 retq83.Lmain_end:84 .size main, .Lmain_end-main85