forked from OSchip/llvm-project
85 lines
2.1 KiB
ArmAsm
85 lines
2.1 KiB
ArmAsm
# 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
|