xref: /llvm-project/bolt/test/X86/match-functions-with-call-graph.test (revision 003b48e0cbbb69a9a1ca9ff1a6d3bda30d0c6121)
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