brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 0960020 Raw
149 lines · plain
1## Test the correctness of section names and function symbol names post cdsplit.2## Warm section should have name .text.warm and warm function fragments should3## have symbol names ending in warm.4 5# RUN: llvm-mc --filetype=obj --triple x86_64-unknown-unknown %s -o %t.o6# RUN: link_fdata %s %t.o %t.fdata7# RUN: llvm-strip --strip-unneeded %t.o8# RUN: %clang %cflags %t.o -o %t.exe -Wl,-q9# RUN: llvm-bolt %t.exe -o %t.bolt --split-functions --split-strategy=cdsplit \10# RUN:         --call-scale=2 --data=%t.fdata --reorder-blocks=ext-tsp11# RUN: llvm-objdump --syms %t.bolt | FileCheck %s --check-prefix=CHECK-SYMS-WARM12 13# CHECK-SYMS-WARM: 0000000000000000 l df *ABS* 0000000000000000 bolt-pseudo.o14# CHECK-SYMS-WARM: .text.warm15# CHECK-SYMS-WARM-SAME: chain.warm16# CHECK-SYMS-WARM: .text.cold17# CHECK-SYMS-WARM-SAME: dummy.cold18 19        .text20        .globl  chain21        .type   chain, @function22chain:23        pushq   %rbp24        movq    %rsp, %rbp25        cmpl    $2, %edi26LLentry_LLchain_start:27        jge     LLchain_start28# FDATA: 1 chain #LLentry_LLchain_start# 1 chain #LLchain_start# 0 10029# FDATA: 1 chain #LLentry_LLchain_start# 1 chain #LLfast# 0 50030LLfast:31        movl    $5, %eax32LLfast_LLexit:33        jmp     LLexit34# FDATA: 1 chain #LLfast_LLexit# 1 chain #LLexit# 0 50035LLchain_start:36        movl    $10, %eax37LLchain_start_LLchain1:38        jge     LLchain139# FDATA: 1 chain #LLchain_start_LLchain1# 1 chain #LLchain1# 0 9940# FDATA: 1 chain #LLchain_start_LLchain1# 1 chain #LLloop_entry# 0 141LLloop_entry:42        addl    $1, %eax43        addl    $1, %eax44        addl    $1, %eax45        addl    $1, %eax46        xorl    %eax, %eax          // Initialize result47        movl    $1000000, %ecx      // Set loop counter to a large value48LLloop_entry_LLloop_start:49        jmp     LLloop_start50# FDATA: 1 chain #LLloop_entry_LLloop_start# 1 chain #LLloop_start# 0 151LLloop_start:52        addl    $1, %eax            // Increment result53        subl    $1, %ecx            // Decrement loop counter54LLloop_start_LLloop_start:55        jg      LLloop_start        // Jump if loop counter is greater than 056# FDATA: 1 chain #LLloop_start_LLloop_start# 1 chain #LLloop_start# 0 100000057# FDATA: 1 chain #LLloop_start_LLloop_start# 1 chain #LLchain1# 0 158LLchain1:59        addl    $1, %eax60LLchain1_LLchain2:61        jmp     LLchain262# FDATA: 1 chain #LLchain1_LLchain2# 1 chain #LLchain2# 0 10063LLchain2:64        addl    $1, %eax65LLchain2_LLchain3:66        jmp     LLchain367# FDATA: 1 chain #LLchain2_LLchain3# 1 chain #LLchain3# 0 10068LLchain3:69        addl    $1, %eax70        addl    $1, %eax71        addl    $1, %eax72        addl    $1, %eax73        addl    $1, %eax74LLchain3_LLchain4:75        jmp     LLchain476# FDATA: 1 chain #LLchain3_LLchain4# 1 chain #LLchain4# 0 10077LLchain4:78        addl    $1, %eax79        addl    $1, %eax80        addl    $1, %eax81        addl    $1, %eax82        addl    $1, %eax83LLchain4_LLexit:84        jmp     LLexit85# FDATA: 1 chain #LLchain4_LLexit# 1 chain #LLexit# 0 10086LLexit:87        popq    %rbp88        ret89LLchain_end:90        .size   chain, LLchain_end-chain91 92        .text93        .globl  dummy94        .type   dummy, @function95dummy:96        pushq   %rbp97        movq    %rsp, %rbp98        cmpl    $2, %edi99dummy_dummy_block1:100        jg     dummy_block1101# FDATA: 1 dummy #dummy_dummy_block1# 1 dummy #dummy_block1# 0 0102# FDATA: 1 dummy #dummy_dummy_block1# 1 dummy #dummy_next# 0 100103dummy_next:104        addl    $1, %eax105        addl    $1, %eax106dummy_next_dummy_exit:107        jmp     dummy_exit108# FDATA: 1 dummy #dummy_next_dummy_exit# 1 dummy #dummy_exit# 0 100109dummy_block1:110        addl    $1, %eax111        addl    $1, %eax112        addl    $1, %eax113        addl    $1, %eax114        addl    $1, %eax115dummy_block1_dummy_block2:116        jmp     dummy_block2117# FDATA: 1 dummy #dummy_block1_dummy_block2# 1 dummy #dummy_block2# 0 0118dummy_block2:119        addl    $1, %eax120        addl    $1, %eax121        addl    $1, %eax122        addl    $1, %eax123        addl    $1, %eax124dummy_block2_dummy_exit:125        jmp     dummy_exit126# FDATA: 1 dummy #dummy_block2_dummy_exit# 1 dummy #dummy_exit# 0 0127dummy_exit:128        popq    %rbp129        ret130 131        .globl  main132        .type   main, @function133main:134        pushq   %rbp135        movq    %rsp, %rbp136        movl    $1, %edi137LLmain_chain1:138        call    chain139# FDATA: 1 main #LLmain_chain1# 1 chain 0 0 600140        movl    $4, %edi141LLmain_dummy:142        call    dummy143# FDATA: 1 main #LLmain_dummy# 1 dummy 0 0 100144        xorl    %eax, %eax145        popq    %rbp146        retq147.Lmain_end:148        .size   main, .Lmain_end-main149