119 lines
3.3 KiB
ArmAsm
119 lines
3.3 KiB
ArmAsm
# Checks that symbols are allocated in correct sections, and that empty
|
|
# fragments are not allocated at all.
|
|
|
|
# REQUIRES: x86_64-linux
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
|
|
# RUN: %clangxx %cxxflags %t.o -o %t.exe -Wl,-q -no-pie
|
|
# RUN: llvm-bolt %t.exe -o %t.bolt --split-functions --split-strategy=all \
|
|
# RUN: --print-split --print-only=_Z3foov 2>&1 | \
|
|
# RUN: FileCheck %s --check-prefix=CHECK-SPLIT
|
|
# RUN: llvm-nm %t.bolt | FileCheck %s --check-prefix=CHECK-COLD0
|
|
# RUN: llvm-objdump --syms %t.bolt | \
|
|
# RUN: FileCheck %s --check-prefix=CHECK-SYMS
|
|
|
|
# CHECK-SPLIT: .LLP0 (4 instructions, align : 1)
|
|
# CHECK-SPLIT: ------- HOT-COLD SPLIT POINT -------
|
|
# CHECK-SPLIT-EMPTY:
|
|
# CHECK-SPLIT-NEXT: ------- HOT-COLD SPLIT POINT -------
|
|
# CHECK-SPLIT-EMPTY:
|
|
# CHECK-SPLIT-NEXT: .LFT0 (2 instructions, align : 1)
|
|
|
|
# CHECK-COLD0-NOT: _Z3foov.cold.0
|
|
|
|
# CHECK-SYMS: .text.cold.1
|
|
# CHECK-SYMS-SAME: _Z3foov.cold.1
|
|
# CHECK-SYMS: .text.cold.2
|
|
# CHECK-SYMS-SAME: _Z3foov.cold.2
|
|
# CHECK-SYMS: .text.cold.3
|
|
# CHECK-SYMS-SAME: _Z3foov.cold.3
|
|
|
|
|
|
.text
|
|
.globl _Z3barv
|
|
.type _Z3barv, @function
|
|
_Z3barv: # void bar();
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
.size _Z3barv, .-_Z3barv
|
|
|
|
|
|
.globl _Z3bazv
|
|
.type _Z3bazv, @function
|
|
_Z3bazv: # void baz() noexcept;
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
.size _Z3bazv, .-_Z3bazv
|
|
|
|
|
|
.globl _Z3foov
|
|
.type _Z3foov, @function
|
|
_Z3foov: # void foo() noexcept;
|
|
.LFB1265: # _Z3foov
|
|
.cfi_startproc
|
|
.cfi_personality 0x3,__gxx_personality_v0
|
|
.cfi_lsda 0x3,.LLSDA1265
|
|
subq $8, %rsp
|
|
.cfi_def_cfa_offset 16
|
|
.LEHB0:
|
|
call _Z3barv # LP: .L5
|
|
.LEHE0:
|
|
jmp .L4
|
|
.L5: # (_Z3foov.cold.0), landing pad, hot
|
|
movq %rax, %rdi
|
|
cmpq $1, %rdx
|
|
je .L3
|
|
call _ZSt9terminatev # _Z3foov.cold.1
|
|
.L3: # _Z3foov.cold.2
|
|
call __cxa_begin_catch
|
|
call _Z3bazv
|
|
call __cxa_end_catch
|
|
.L4: # _Z3foov.cold.3
|
|
call _Z3bazv
|
|
addq $8, %rsp
|
|
.cfi_def_cfa_offset 8
|
|
ret
|
|
.cfi_endproc
|
|
.globl __gxx_personality_v0
|
|
.section .gcc_except_table,"a",@progbits
|
|
.align 4
|
|
.LLSDA1265:
|
|
.byte 0xff
|
|
.byte 0x3
|
|
.uleb128 .LLSDATT1265-.LLSDATTD1265
|
|
.LLSDATTD1265:
|
|
.byte 0x1
|
|
.uleb128 .LLSDACSE1265-.LLSDACSB1265
|
|
.LLSDACSB1265:
|
|
.uleb128 .LEHB0-.LFB1265
|
|
.uleb128 .LEHE0-.LEHB0
|
|
.uleb128 .L5-.LFB1265
|
|
.uleb128 0x3
|
|
.LLSDACSE1265:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0x1
|
|
.byte 0x7d
|
|
.align 4
|
|
.long _ZTISt13runtime_error
|
|
.LLSDATT1265:
|
|
.text
|
|
.size _Z3foov, .-_Z3foov
|
|
|
|
|
|
.globl main
|
|
.type main, @function
|
|
main:
|
|
.cfi_startproc
|
|
subq $8, %rsp
|
|
.cfi_def_cfa_offset 16
|
|
call _Z3foov
|
|
movl $0, %eax
|
|
addq $8, %rsp
|
|
.cfi_def_cfa_offset 8
|
|
ret
|
|
.cfi_endproc
|
|
.size main, .-main
|