68 lines · plain
1## Test YAMLProfileReader support for pass-through blocks in non-matching edges:2## match the profile edge A -> C to the CFG with blocks A -> B -> C.3 4# REQUIRES: system-linux5# RUN: split-file %s %t6# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %t/main.s -o %t.o7# RUN: %clang %cflags %t.o -o %t.exe -Wl,-q -nostdlib8# RUN: llvm-bolt %t.exe -o %t.out --data %t/yaml --profile-ignore-hash -v=1 \9# RUN: --print-cfg 2>&1 | FileCheck %s10 11# CHECK: Binary Function "main" after building cfg12# CHECK: Profile Acc : 100.0%13# CHECK-NOT: BOLT-WARNING: no successor for block .LFT0 that matches index 3 or block .Ltmp014 15#--- main.s16.globl main17.type main, @function18main:19 .cfi_startproc20.LBB00:21 pushq %rbp22 movq %rsp, %rbp23 subq $16, %rsp24 testq %rax, %rax25 js .LBB0326.LBB01:27 jne .LBB0428.LBB02:29 nop30.LBB03:31 xorl %eax, %eax32 addq $16, %rsp33 popq %rbp34 retq35.LBB04:36 xorl %eax, %eax37 addq $16, %rsp38 popq %rbp39 retq40## For relocations against .text41.LBB05:42 call exit43 .cfi_endproc44 .size main, .-main45 46#--- yaml47---48header:49 profile-version: 150 binary-name: 'profile-passthrough-block.s.tmp.exe'51 binary-build-id: '<unknown>'52 profile-flags: [ lbr ]53 profile-origin: branch profile reader54 profile-events: ''55 dfs-order: false56 hash-func: xxh357functions:58 - name: main59 fid: 060 hash: 0x000000000000000061 exec: 162 nblocks: 663 blocks:64 - bid: 165 insns: 166 succ: [ { bid: 3, cnt: 1} ]67...68