186 lines · plain
1## Check that BOLT in lite mode processes fragments as expected.2 3# RUN: split-file %s %t4# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %t/main.s -o %t.o5# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %t/baz.s -o %t.baz.o6# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %t/baz2.s -o %t.baz2.o7# RUN: link_fdata %s %t.o %t.main.fdata8# RUN: link_fdata %s %t.baz.o %t.baz.fdata9# RUN: link_fdata %s %t.baz2.o %t.baz2.fdata10# RUN: merge-fdata %t.main.fdata %t.baz.fdata %t.baz2.fdata > %t.fdata11# RUN: %clang %cflags %t.o %t.baz.o %t.baz2.o -o %t.exe -Wl,-q12# RUN: llvm-bolt %t.exe -o %t.out --lite=1 --data %t.fdata -v=1 -print-cfg \13# RUN: 2>&1 | FileCheck %s14 15# CHECK: BOLT-INFO: processing main.cold.1 as a sibling of non-ignored function16# CHECK: BOLT-INFO: processing foo.cold.1/1(*2) as a sibling of non-ignored function17# CHECK: BOLT-INFO: processing bar.cold.1/1(*2) as a sibling of non-ignored function18# CHECK: BOLT-INFO: processing baz.cold.1 as a sibling of non-ignored function19# CHECK: BOLT-INFO: processing baz.cold.1/1(*2) as a sibling of non-ignored function20# CHECK: BOLT-INFO: processing baz.cold.1/2(*2) as a sibling of non-ignored function21 22# CHECK: Binary Function "main.cold.1" after building cfg23# CHECK: Parent : main24 25# CHECK: Binary Function "foo.cold.1/1(*2)" after building cfg26# CHECK: Parent : foo27 28# CHECK: Binary Function "bar.cold.1/1(*2)" after building cfg29# CHECK: Parent : bar/1(*2)30 31# CHECK: Binary Function "baz.cold.1" after building cfg32# CHECK: Parent : baz{{$}}33 34# CHECK: Binary Function "baz.cold.1/1(*2)" after building cfg35# CHECK: Parent : baz/1(*2)36 37# CHECK: Binary Function "baz.cold.1/2(*2)" after building cfg38# CHECK: Parent : baz/2(*2)39 40#--- main.s41.file "main.s"42 .globl main43 .type main, %function44main:45 .cfi_startproc46# FDATA: 0 [unknown] 0 1 main 0 1 047 cmpl $0x0, %eax48 je main.cold.149 retq50 .cfi_endproc51.size main, .-main52 53 .globl foo54 .type foo, %function55foo:56 .cfi_startproc57# FDATA: 0 [unknown] 0 1 foo 0 1 058 cmpl $0x0, %eax59 je foo.cold.160 retq61 .cfi_endproc62.size foo, .-foo63 64 .local bar65 .type bar, %function66bar:67 .cfi_startproc68# FDATA: 0 [unknown] 0 1 bar/1 0 1 069 cmpl $0x0, %eax70 je bar.cold.171 retq72 .cfi_endproc73.size bar, .-bar74 75 .globl baz76 .type baz, %function77baz:78 .cfi_startproc79# FDATA: 0 [unknown] 0 1 baz 0 1 080 cmpl $0x0, %eax81 je baz.cold.182 retq83 .cfi_endproc84.size baz, .-baz85 86 .section .text.cold87 .globl main.cold.188 .type main.cold.1, %function89main.cold.1:90 .cfi_startproc91 pushq %rbp92 movq %rsp, %rbp93 movl $0x0, %eax94 popq %rbp95 retq96 .cfi_endproc97.size main.cold.1, .-main.cold.198 99 .local foo.cold.1100 .type foo.cold.1, %function101foo.cold.1:102 .cfi_startproc103 pushq %rbp104 movq %rsp, %rbp105 movl $0x0, %eax106 popq %rbp107 retq108 .cfi_endproc109.size foo.cold.1, .-foo.cold.1110 111 .local bar.cold.1112 .type bar.cold.1, %function113bar.cold.1:114 .cfi_startproc115 pushq %rbp116 movq %rsp, %rbp117 movl $0x0, %eax118 popq %rbp119 retq120 .cfi_endproc121.size bar.cold.1, .-bar.cold.1122 123 .globl baz.cold.1124 .type baz.cold.1, %function125baz.cold.1:126 .cfi_startproc127 pushq %rbp128 movq %rsp, %rbp129 movl $0x0, %eax130 popq %rbp131 retq132 .cfi_endproc133.size baz.cold.1, .-baz.cold.1134 135#--- baz.s136.file "baz.s"137 .local baz138 .type baz, %function139baz:140 .cfi_startproc141# FDATA: 0 [unknown] 0 1 baz/1 0 1 0142 cmpl $0x0, %eax143 je baz.cold.1144 retq145 .cfi_endproc146.size baz, .-baz147 148 .section .text.cold149 .local baz.cold.1150 .type baz.cold.1, %function151baz.cold.1:152 .cfi_startproc153 pushq %rbp154 movq %rsp, %rbp155 movl $0x0, %eax156 popq %rbp157 retq158 .cfi_endproc159.size baz.cold.1, .-baz.cold.1160 161#--- baz2.s162.file "baz2.s"163 .local baz164 .type baz, %function165baz:166 .cfi_startproc167# FDATA: 0 [unknown] 0 1 baz/2 0 1 0168 cmpl $0x0, %eax169 je baz.cold.1170 retq171 .cfi_endproc172.size baz, .-baz173 174 .section .text.cold175 .local baz.cold.1176 .type baz.cold.1, %function177baz.cold.1:178 .cfi_startproc179 pushq %rbp180 movq %rsp, %rbp181 movl $0x0, %eax182 popq %rbp183 retq184 .cfi_endproc185.size baz.cold.1, .-baz.cold.1186