119 lines · plain
1## Checks that symbols are allocated in correct sections, and that empty2## fragments are not allocated at all.3 4# REQUIRES: x86_64-linux5 6# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o7# RUN: %clangxx %cxxflags %t.o -o %t.exe -Wl,-q -no-pie8# RUN: llvm-bolt %t.exe -o %t.bolt --split-functions --split-strategy=all \9# RUN: --print-split --print-only=_Z3foov 2>&1 | \10# RUN: FileCheck %s --check-prefix=CHECK-SPLIT11# RUN: llvm-nm %t.bolt | FileCheck %s --check-prefix=CHECK-COLD012# RUN: llvm-objdump --syms %t.bolt | \13# RUN: FileCheck %s --check-prefix=CHECK-SYMS14 15# CHECK-SPLIT: .LLP0 (4 instructions, align : 1)16# CHECK-SPLIT: ------- HOT-COLD SPLIT POINT -------17# CHECK-SPLIT-EMPTY:18# CHECK-SPLIT-NEXT: ------- HOT-COLD SPLIT POINT -------19# CHECK-SPLIT-EMPTY:20# CHECK-SPLIT-NEXT: .LFT0 (2 instructions, align : 1)21 22# CHECK-COLD0-NOT: _Z3foov.cold.023 24# CHECK-SYMS: .text.cold.125# CHECK-SYMS-SAME: _Z3foov.cold.126# CHECK-SYMS: .text.cold.227# CHECK-SYMS-SAME: _Z3foov.cold.228# CHECK-SYMS: .text.cold.329# CHECK-SYMS-SAME: _Z3foov.cold.330 31 32 .text33 .globl _Z3barv34 .type _Z3barv, @function35_Z3barv: # void bar();36 .cfi_startproc37 ret38 .cfi_endproc39 .size _Z3barv, .-_Z3barv40 41 42 .globl _Z3bazv43 .type _Z3bazv, @function44_Z3bazv: # void baz() noexcept;45 .cfi_startproc46 ret47 .cfi_endproc48 .size _Z3bazv, .-_Z3bazv49 50 51 .globl _Z3foov52 .type _Z3foov, @function53_Z3foov: # void foo() noexcept;54.LFB1265: # _Z3foov55 .cfi_startproc56 .cfi_personality 0x3,__gxx_personality_v057 .cfi_lsda 0x3,.LLSDA126558 subq $8, %rsp59 .cfi_def_cfa_offset 1660.LEHB0:61 call _Z3barv # LP: .L562.LEHE0:63 jmp .L464.L5: # (_Z3foov.cold.0), landing pad, hot65 movq %rax, %rdi66 cmpq $1, %rdx67 je .L368 call _ZSt9terminatev # _Z3foov.cold.169.L3: # _Z3foov.cold.270 call __cxa_begin_catch71 call _Z3bazv72 call __cxa_end_catch73.L4: # _Z3foov.cold.374 call _Z3bazv75 addq $8, %rsp76 .cfi_def_cfa_offset 877 ret78 .cfi_endproc79 .globl __gxx_personality_v080 .section .gcc_except_table,"a",@progbits81 .align 482.LLSDA1265:83 .byte 0xff84 .byte 0x385 .uleb128 .LLSDATT1265-.LLSDATTD126586.LLSDATTD1265:87 .byte 0x188 .uleb128 .LLSDACSE1265-.LLSDACSB126589.LLSDACSB1265:90 .uleb128 .LEHB0-.LFB126591 .uleb128 .LEHE0-.LEHB092 .uleb128 .L5-.LFB126593 .uleb128 0x394.LLSDACSE1265:95 .byte 096 .byte 097 .byte 0x198 .byte 0x7d99 .align 4100 .long _ZTISt13runtime_error101.LLSDATT1265:102 .text103 .size _Z3foov, .-_Z3foov104 105 106 .globl main107 .type main, @function108main:109 .cfi_startproc110 subq $8, %rsp111 .cfi_def_cfa_offset 16112 call _Z3foov113 movl $0, %eax114 addq $8, %rsp115 .cfi_def_cfa_offset 8116 ret117 .cfi_endproc118 .size main, .-main119