xref: /llvm-project/bolt/test/X86/yaml-non-simple.test (revision 91423d71938d7a1dba27188e6d854148a750a3dd)
1*91423d71SAmir Ayupov## Check that YAML profile for non-simple function is not reported as stale.
2*91423d71SAmir Ayupov
3*91423d71SAmir Ayupov# RUN: split-file %s %t
4*91423d71SAmir Ayupov# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %t/main.s -o %t.o
5*91423d71SAmir Ayupov# RUN: %clang %cflags %t.o -o %t.exe -nostdlib
6*91423d71SAmir Ayupov# RUN: llvm-bolt %t.exe -o %t.out --data %t/yaml --profile-ignore-hash -v=1 \
7*91423d71SAmir Ayupov# RUN:   --report-stale 2>&1 | FileCheck %s
8*91423d71SAmir Ayupov
9*91423d71SAmir Ayupov# CHECK: BOLT-INFO: could not disassemble function main. Will ignore.
10*91423d71SAmir Ayupov# CHECK: BOLT-INFO: could not disassemble function main.cold. Will ignore.
11*91423d71SAmir Ayupov# CHECK: BOLT-INFO: 0 out of 2 functions in the binary (0.0%) have non-empty execution profile
12*91423d71SAmir Ayupov# CHECK: BOLT-INFO: 1 function with profile could not be optimized
13*91423d71SAmir Ayupov
14*91423d71SAmir Ayupov#--- main.s
15*91423d71SAmir Ayupov.globl main
16*91423d71SAmir Ayupov.type	main, @function
17*91423d71SAmir Ayupovmain:
18*91423d71SAmir Ayupov  .cfi_startproc
19*91423d71SAmir Ayupov.LBB00:
20*91423d71SAmir Ayupov  pushq   %rbp
21*91423d71SAmir Ayupov  movq    %rsp, %rbp
22*91423d71SAmir Ayupov  subq    $16, %rsp
23*91423d71SAmir Ayupov  testq   %rax, %rax
24*91423d71SAmir Ayupov  js      .LBB03
25*91423d71SAmir Ayupov.LBB01:
26*91423d71SAmir Ayupov  jne     .LBB04
27*91423d71SAmir Ayupov.LBB02:
28*91423d71SAmir Ayupov  nop
29*91423d71SAmir Ayupov.LBB03:
30*91423d71SAmir Ayupov  xorl    %eax, %eax
31*91423d71SAmir Ayupov  addq    $16, %rsp
32*91423d71SAmir Ayupov  popq    %rbp
33*91423d71SAmir Ayupov  retq
34*91423d71SAmir Ayupov.LBB04:
35*91423d71SAmir Ayupov  xorl    %eax, %eax
36*91423d71SAmir Ayupov  addq    $16, %rsp
37*91423d71SAmir Ayupov  popq    %rbp
38*91423d71SAmir Ayupov  retq
39*91423d71SAmir Ayupov  .cfi_endproc
40*91423d71SAmir Ayupov  .size	main, .-main
41*91423d71SAmir Ayupov
42*91423d71SAmir Ayupov.globl main.cold
43*91423d71SAmir Ayupov.type	main.cold, @function
44*91423d71SAmir Ayupovmain.cold:
45*91423d71SAmir Ayupov  .cfi_startproc
46*91423d71SAmir Ayupov  nop
47*91423d71SAmir Ayupov  .cfi_endproc
48*91423d71SAmir Ayupov  .size	main.cold, .-main.cold
49*91423d71SAmir Ayupov
50*91423d71SAmir Ayupov#--- yaml
51*91423d71SAmir Ayupov---
52*91423d71SAmir Ayupovheader:
53*91423d71SAmir Ayupov  profile-version: 1
54*91423d71SAmir Ayupov  binary-name:     'yaml-non-simple.s.tmp.exe'
55*91423d71SAmir Ayupov  binary-build-id: '<unknown>'
56*91423d71SAmir Ayupov  profile-flags:   [ lbr ]
57*91423d71SAmir Ayupov  profile-origin:  branch profile reader
58*91423d71SAmir Ayupov  profile-events:  ''
59*91423d71SAmir Ayupov  dfs-order:       false
60*91423d71SAmir Ayupov  hash-func:       xxh3
61*91423d71SAmir Ayupovfunctions:
62*91423d71SAmir Ayupov  - name:            main
63*91423d71SAmir Ayupov    fid:             0
64*91423d71SAmir Ayupov    hash:            0x0000000000000000
65*91423d71SAmir Ayupov    exec:            1
66*91423d71SAmir Ayupov    nblocks:         5
67*91423d71SAmir Ayupov    blocks:
68*91423d71SAmir Ayupov      - bid:             1
69*91423d71SAmir Ayupov        insns:           1
70*91423d71SAmir Ayupov        succ:            [ { bid: 3, cnt: 1} ]
71*91423d71SAmir Ayupov...
72