1296a9563SShaw Young## Tests blocks matching by called function names in inferStaleProfile. 2296a9563SShaw Young 3296a9563SShaw Young# REQUIRES: system-linux 4296a9563SShaw Young# RUN: split-file %s %t 5*003b48e0SRaul Tambre# RUN: %clangxx %cxxflags %t/main.cpp -o %t.exe -Wl,-q -nostdlib 6296a9563SShaw Young# RUN: llvm-bolt %t.exe -o %t.out --data %t/yaml --profile-ignore-hash -v=1 \ 7296a9563SShaw Young# RUN: --dyno-stats --print-cfg --infer-stale-profile=1 --match-with-call-graph 2>&1 | FileCheck %s 8296a9563SShaw Young 9296a9563SShaw Young# CHECK: BOLT-INFO: matched 1 functions with call graph 10296a9563SShaw Young 11296a9563SShaw Young#--- main.cpp 12296a9563SShaw Youngvoid foo() {} 13296a9563SShaw Young 14296a9563SShaw Youngvoid bar() {} 15296a9563SShaw Young 16296a9563SShaw Youngvoid qux() { 17296a9563SShaw Young foo(); 18296a9563SShaw Young bar(); 19296a9563SShaw Young} 20296a9563SShaw Young 21296a9563SShaw Youngvoid fred() { 22296a9563SShaw Young foo(); 23296a9563SShaw Young qux(); 24296a9563SShaw Young bar(); 25296a9563SShaw Young bar(); 26296a9563SShaw Young foo(); 27296a9563SShaw Young} 28296a9563SShaw Young 29296a9563SShaw Youngint main() { 30296a9563SShaw Young return 0; 31296a9563SShaw Young} 32296a9563SShaw Young 33296a9563SShaw Young#--- yaml 34296a9563SShaw Young--- 35296a9563SShaw Youngheader: 36296a9563SShaw Young profile-version: 1 37296a9563SShaw Young binary-name: 'match-functions-with-calls-as-anchors.s.tmp.exe' 38296a9563SShaw Young binary-build-id: '<unknown>' 39296a9563SShaw Young profile-flags: [ lbr ] 40296a9563SShaw Young profile-origin: branch profile reader 41296a9563SShaw Young profile-events: '' 42296a9563SShaw Young dfs-order: false 43296a9563SShaw Young hash-func: xxh3 44296a9563SShaw Youngfunctions: 45296a9563SShaw Young - name: main 46296a9563SShaw Young fid: 0 47296a9563SShaw Young hash: 0x0000000000000001 48296a9563SShaw Young exec: 1 49296a9563SShaw Young nblocks: 6 50296a9563SShaw Young blocks: 51296a9563SShaw Young - bid: 1 52296a9563SShaw Young hash: 0x0000000000000001 53296a9563SShaw Young insns: 1 54296a9563SShaw Young succ: [ { bid: 3, cnt: 1} ] 55296a9563SShaw Young - name: _Z3foov 56296a9563SShaw Young fid: 1 57296a9563SShaw Young hash: 0x0000000000000002 58296a9563SShaw Young exec: 1 59296a9563SShaw Young nblocks: 6 60296a9563SShaw Young blocks: 61296a9563SShaw Young - bid: 1 62296a9563SShaw Young hash: 0x0000000000000002 63296a9563SShaw Young insns: 1 64296a9563SShaw Young succ: [ { bid: 3, cnt: 1} ] 65296a9563SShaw Young 66296a9563SShaw Young - name: _Z3barv 67296a9563SShaw Young fid: 2 68296a9563SShaw Young hash: 0x0000000000000003 69296a9563SShaw Young exec: 1 70296a9563SShaw Young nblocks: 6 71296a9563SShaw Young blocks: 72296a9563SShaw Young - bid: 1 73296a9563SShaw Young hash: 0x0000000000000003 74296a9563SShaw Young insns: 1 75296a9563SShaw Young succ: [ { bid: 3, cnt: 1} ] 76296a9563SShaw Young - name: _Z3quxv 77296a9563SShaw Young fid: 3 78296a9563SShaw Young hash: 0x0000000000000004 79296a9563SShaw Young exec: 4 80296a9563SShaw Young nblocks: 6 81296a9563SShaw Young blocks: 82296a9563SShaw Young - bid: 1 83296a9563SShaw Young hash: 0x0000000000000004 84296a9563SShaw Young insns: 1 85296a9563SShaw Young succ: [ { bid: 3, cnt: 1} ] 86296a9563SShaw Young calls: [ { off : 0, fid : 1, cnt : 0}, 87296a9563SShaw Young { off : 0, fid : 2, cnt : 0} ] 88296a9563SShaw Young - name: _Z4bazv 89296a9563SShaw Young fid: 4 90296a9563SShaw Young hash: 0x0000000000000005 91296a9563SShaw Young exec: 1 92296a9563SShaw Young nblocks: 6 93296a9563SShaw Young blocks: 94296a9563SShaw Young - bid: 1 95296a9563SShaw Young hash: 0x0000000000000005 96296a9563SShaw Young insns: 1 97296a9563SShaw Young succ: [ { bid: 3, cnt: 1} ] 98296a9563SShaw Young calls: [ { off : 0, fid : 3, cnt : 0}, 99296a9563SShaw Young { off : 0, fid : 1, cnt : 0}, 100296a9563SShaw Young { off : 0, fid : 2, cnt : 0}, 101296a9563SShaw Young { off : 0, fid : 1, cnt : 0}, 102296a9563SShaw Young { off : 0, fid : 2, cnt : 0} ] 103296a9563SShaw Young... 104