xref: /llvm-project/llvm/test/tools/llvm-ctxprof-util/llvm-ctxprof-util.test (revision c70f246251fb62b8ecf94f2365688cd361adec97)
1; REQUIRES: x86_64-linux
2
3; RUN: mkdir -p %t
4; RUN: llvm-ctxprof-util fromYAML --input %S/Inputs/empty.yaml -output %t/empty.bitstream
5; RUN: llvm-bcanalyzer --dump %t/empty.bitstream | FileCheck %s --check-prefix=EMPTY
6
7; RUN: llvm-ctxprof-util fromYAML -input %S/Inputs/valid.yaml -output %t/valid.bitstream
8; RUN: llvm-ctxprof-util toYAML -input %t/valid.bitstream -output %t/valid2.yaml
9; RUN: diff %t/valid2.yaml %S/Inputs/valid.yaml
10
11; For the valid case, check against a reference output.
12; Note that uint64_t are printed as signed values by llvm-bcanalyzer:
13;  * 18446744073709551613 in yaml is -3 in the output
14;  * 18446744073709551612 in yaml is -4 in the output
15; Also we have no callee/context at index 0, 2 callsites for index 1, and one for
16; index 2.
17; RUN: llvm-bcanalyzer --dump %t/valid.bitstream | FileCheck %s --check-prefix=VALID
18
19; EMPTY: <BLOCKINFO_BLOCK/>
20; EMPTY-NEXT: <Metadata NumWords=1 BlockCodeSize=2>
21; EMPTY-NEXT:   <Version op0=1/>
22; EMPTY-NEXT: </Metadata>
23
24; VALID:      <BLOCKINFO_BLOCK/>
25; VALID-NEXT: <Metadata NumWords=30 BlockCodeSize=2>
26; VALID-NEXT:   <Version op0=1/>
27; VALID-NEXT:   <Context NumWords=20 BlockCodeSize=2>
28; VALID-NEXT:     <GUID op0=1000/>
29; VALID-NEXT:     <Counters op0=1 op1=2 op2=3/>
30; VALID-NEXT:     <Context NumWords=5 BlockCodeSize=2>
31; VALID-NEXT:       <GUID op0=-3/>
32; VALID-NEXT:       <CalleeIndex op0=1/>
33; VALID-NEXT:       <Counters op0=6 op1=7 op2=8/>
34; VALID-NEXT:     </Context>
35; VALID-NEXT:     <Context NumWords=3 BlockCodeSize=2>
36; VALID-NEXT:       <GUID op0=2000/>
37; VALID-NEXT:       <CalleeIndex op0=1/>
38; VALID-NEXT:       <Counters op0=4 op1=5/>
39; VALID-NEXT:     </Context>
40; VALID-NEXT:     <Context NumWords=3 BlockCodeSize=2>
41; VALID-NEXT:       <GUID op0=3000/>
42; VALID-NEXT:       <CalleeIndex op0=2/>
43; VALID-NEXT:       <Counters op0=40 op1=50/>
44; VALID-NEXT:     </Context>
45; VALID-NEXT:   </Context>
46; VALID-NEXT:   <Context NumWords=4 BlockCodeSize=2>
47; VALID-NEXT:     <GUID op0=-4/>
48; VALID-NEXT:     <Counters op0=5 op1=9 op2=10/>
49; VALID-NEXT:   </Context>
50; VALID-NEXT: </Metadata>
51