xref: /llvm-project/bolt/test/X86/match-blocks-with-pseudo-probes-inline.test (revision 9a9af0a23fc910694b6a806b7ce9cb2e7e4240ef)
1*9a9af0a2SShaw Young## Test stale block matching with pseudo probes including inline tree matching.
2*9a9af0a2SShaw Young# RUN: split-file %s %t
3*9a9af0a2SShaw Young# RUN: llvm-bolt \
4*9a9af0a2SShaw Young# RUN:   %S/../../../llvm/test/tools/llvm-profgen/Inputs/inline-cs-pseudoprobe.perfbin \
5*9a9af0a2SShaw Young# RUN:   -o %t.bolt -data %t/yaml -infer-stale-profile -v=2 \
6*9a9af0a2SShaw Young# RUN:   --stale-matching-with-pseudo-probes 2>&1 | FileCheck %s
7*9a9af0a2SShaw Young
8*9a9af0a2SShaw Young# CHECK: BOLT-WARNING: 3 (100.0% of all profiled) functions have invalid (possibly stale) profile
9*9a9af0a2SShaw Young# CHECK: BOLT-INFO: inference found an exact pseudo probe match for 100.00% of basic blocks (3 out of 3 stale)
10*9a9af0a2SShaw Young
11*9a9af0a2SShaw Young#--- yaml
12*9a9af0a2SShaw Young---
13*9a9af0a2SShaw Youngheader:
14*9a9af0a2SShaw Young  profile-version: 1
15*9a9af0a2SShaw Young  binary-name:     'inline-cs-pseudoprobe.perfbin'
16*9a9af0a2SShaw Young  binary-build-id: '<unknown>'
17*9a9af0a2SShaw Young  profile-flags:   [ lbr ]
18*9a9af0a2SShaw Young  profile-origin:  perf data aggregator
19*9a9af0a2SShaw Young  profile-events:  ''
20*9a9af0a2SShaw Young  dfs-order:       false
21*9a9af0a2SShaw Young  hash-func:       xxh3
22*9a9af0a2SShaw Youngfunctions:
23*9a9af0a2SShaw Young  - name:            bar
24*9a9af0a2SShaw Young    fid:             9
25*9a9af0a2SShaw Young    hash:            0x1
26*9a9af0a2SShaw Young    exec:            1
27*9a9af0a2SShaw Young    nblocks:         1
28*9a9af0a2SShaw Young    blocks:
29*9a9af0a2SShaw Young      - bid:             0
30*9a9af0a2SShaw Young        insns:           11
31*9a9af0a2SShaw Young        hash:            0x1
32*9a9af0a2SShaw Young        exec:            1
33*9a9af0a2SShaw Young        probes:          [ { blx: 9 } ]
34*9a9af0a2SShaw Young    inline_tree:     [ {  } ]
35*9a9af0a2SShaw Young  - name:            foo
36*9a9af0a2SShaw Young    fid:             10
37*9a9af0a2SShaw Young    hash:            0x2
38*9a9af0a2SShaw Young    exec:            1
39*9a9af0a2SShaw Young    nblocks:         6
40*9a9af0a2SShaw Young    blocks:
41*9a9af0a2SShaw Young      - bid:             0
42*9a9af0a2SShaw Young        insns:           3
43*9a9af0a2SShaw Young        hash:            0x2
44*9a9af0a2SShaw Young        exec:            1
45*9a9af0a2SShaw Young        succ:            [ { bid: 3, cnt: 0 } ]
46*9a9af0a2SShaw Young        probes:          [ { blx: 3 } ]
47*9a9af0a2SShaw Young    inline_tree:     [ { g: 1 }, { g: 0, cs: 8 } ]
48*9a9af0a2SShaw Young  - name:            main
49*9a9af0a2SShaw Young    fid:             11
50*9a9af0a2SShaw Young    hash:            0x3
51*9a9af0a2SShaw Young    exec:            1
52*9a9af0a2SShaw Young    nblocks:         6
53*9a9af0a2SShaw Young    blocks:
54*9a9af0a2SShaw Young      - bid:             0
55*9a9af0a2SShaw Young        insns:           3
56*9a9af0a2SShaw Young        hash:            0x3
57*9a9af0a2SShaw Young        exec:            1
58*9a9af0a2SShaw Young        succ:            [ { bid: 3, cnt: 0 } ]
59*9a9af0a2SShaw Young        probes:          [ { blx: 3, id: 1 }, { blx: 1 } ]
60*9a9af0a2SShaw Young    inline_tree:     [ { g: 2 }, { g: 1, cs: 2 }, { g: 0, p: 1, cs: 8 } ]
61*9a9af0a2SShaw Youngpseudo_probe_desc:
62*9a9af0a2SShaw Young  gs:              [ 0xE413754A191DB537, 0x5CF8C24CDB18BDAC, 0xDB956436E78DD5FA ]
63*9a9af0a2SShaw Young  gh:              [ 2, 0, 1 ]
64*9a9af0a2SShaw Young  hs:              [ 0x200205A19C5B4, 0x10000FFFFFFFF, 0x10E852DA94 ]
65*9a9af0a2SShaw Young...
66