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