## 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: '' 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: [ { blk: [ 1, 4 ] } ] 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: [ { blk: [ 1, 2 ] } ] 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: [ { blk: [ 1, 2 ], ids: [ 1 ] }, { blk: [ 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 ] ...