blob: accb4742851ea574e5bafae272b4b4d3622208ac [file] [log] [blame] [edit]
## Test stale block matching with pseudo probes including inline tree matching.
# RUN: split-file %s %t
# RUN: llvm-bolt \
# RUN: %S/../../../llvm/test/tools/llvm-profgen/Inputs/inline-cs-pseudoprobe.perfbin \
# RUN: -o %t.bolt -data %t/yaml -infer-stale-profile -v=2 \
# RUN: --stale-matching-with-pseudo-probes 2>&1 | FileCheck %s
# CHECK: BOLT-WARNING: 3 (100.0% of all profiled) functions have invalid (possibly stale) profile
# CHECK: BOLT-INFO: inference found an exact pseudo probe match for 100.00% of basic blocks (3 out of 3 stale)
#--- yaml
---
header:
profile-version: 1
binary-name: 'inline-cs-pseudoprobe.perfbin'
binary-build-id: '<unknown>'
profile-flags: [ lbr ]
profile-origin: perf data aggregator
profile-events: ''
dfs-order: false
hash-func: xxh3
functions:
- name: bar
fid: 9
hash: 0x1
exec: 1
nblocks: 1
blocks:
- bid: 0
insns: 11
hash: 0x1
exec: 1
probes: [ { blx: 9 } ]
inline_tree: [ { } ]
- name: foo
fid: 10
hash: 0x2
exec: 1
nblocks: 6
blocks:
- bid: 0
insns: 3
hash: 0x2
exec: 1
succ: [ { bid: 3, cnt: 0 } ]
probes: [ { blx: 3 } ]
inline_tree: [ { g: 1 }, { g: 0, cs: 8 } ]
- name: main
fid: 11
hash: 0x3
exec: 1
nblocks: 6
blocks:
- bid: 0
insns: 3
hash: 0x3
exec: 1
succ: [ { bid: 3, cnt: 0 } ]
probes: [ { blx: 3, id: 1 }, { blx: 1 } ]
inline_tree: [ { g: 2 }, { g: 1, cs: 2 }, { g: 0, p: 1, cs: 8 } ]
pseudo_probe_desc:
gs: [ 0xE413754A191DB537, 0x5CF8C24CDB18BDAC, 0xDB956436E78DD5FA ]
gh: [ 2, 0, 1 ]
hs: [ 0x200205A19C5B4, 0x10000FFFFFFFF, 0x10E852DA94 ]
...