[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / tools / llvm-profdata / suppl-instr-with-sample.test
blob29d3c7c66b0f37dbc02774a27f74c9f12604580d
1 Some basic tests for supplementing instrumentation profile with sample profile.
3 Test all of goo's counters will be set to -1.
4 RUN: llvm-profdata merge \
5 RUN:     -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
6 RUN:     -suppl-min-size-threshold=0 %p/Inputs/mix_instr.proftext -o %t
7 RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX1
9 MIX1: foo:
10 MIX1-NEXT: Hash: 0x0000000000000007
11 MIX1-NEXT: Counters: 5
12 MIX1-NEXT: Block counts: [12, 13, 0, 0, 0]
13 MIX1: goo:
14 MIX1-NEXT: Hash: 0x0000000000000005
15 MIX1-NEXT: Counters: 3
16 MIX1-NEXT: Block counts: [18446744073709551615, 18446744073709551615, 18446744073709551615]
17 MIX1: moo:
18 MIX1-NEXT: Hash: 0x0000000000000009
19 MIX1-NEXT: Counters: 4
20 MIX1-NEXT: Block counts: [3000, 1000, 2000, 500]
22 Test when the zero counter ratio of foo is higher than zero-counter-threshold.
23 RUN: llvm-profdata merge \
24 RUN:     -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
25 RUN:     -suppl-min-size-threshold=0 -zero-counter-threshold=0.5 \
26 RUN:     -instr-prof-cold-threshold=30 %p/Inputs/mix_instr.proftext -o %t
27 RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX2
29 MIX2: foo:
30 MIX2-NEXT: Hash: 0x0000000000000007
31 MIX2-NEXT: Counters: 5
32 MIX2-NEXT: Block counts: [18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615]
33 MIX2: goo:
34 MIX2-NEXT: Hash: 0x0000000000000005
35 MIX2-NEXT: Counters: 3
36 MIX2-NEXT: Block counts: [18446744073709551615, 18446744073709551615, 18446744073709551615]
37 MIX2: moo:
38 MIX2-NEXT: Hash: 0x0000000000000009
39 MIX2-NEXT: Counters: 4
40 MIX2-NEXT: Block counts: [3000, 1000, 2000, 500]
42 Test when the zero counter ratio of foo is lower than zero-counter-threshold.
43 RUN: llvm-profdata merge \
44 RUN:     -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
45 RUN:     -suppl-min-size-threshold=0 -zero-counter-threshold=0.7 \
46 RUN:     -instr-prof-cold-threshold=30 %p/Inputs/mix_instr.proftext -o %t
47 RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX3
49 MIX3: foo:
50 MIX3-NEXT: Hash: 0x0000000000000007
51 MIX3-NEXT: Counters: 5
52 MIX3-NEXT: Block counts: [1384, 1500, 0, 0, 0]
53 MIX3: goo:
54 MIX3-NEXT: Hash: 0x0000000000000005
55 MIX3-NEXT: Counters: 3
56 MIX3-NEXT: Block counts: [18446744073709551615, 18446744073709551615, 18446744073709551615]
57 MIX3: moo:
58 MIX3-NEXT: Hash: 0x0000000000000009
59 MIX3-NEXT: Counters: 4
60 MIX3-NEXT: Block counts: [3000, 1000, 2000, 500]
62 Test foo's profile won't be adjusted because its size is smaller
63 than suppl-min-size-threshold.
64 RUN: llvm-profdata merge \
65 RUN:     -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
66 RUN:     -suppl-min-size-threshold=2 -zero-counter-threshold=0.7 \
67 RUN:     -instr-prof-cold-threshold=30 %p/Inputs/mix_instr.proftext -o %t
68 RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX4
70 MIX4: foo:
71 MIX4-NEXT: Hash: 0x0000000000000007
72 MIX4-NEXT: Counters: 5
73 MIX4-NEXT: Block counts: [12, 13, 0, 0, 0]
74 MIX4: goo:
75 MIX4-NEXT: Hash: 0x0000000000000005
76 MIX4-NEXT: Counters: 3
77 MIX4-NEXT: Block counts: [18446744073709551615, 18446744073709551615, 18446744073709551615]
78 MIX4: moo:
79 MIX4-NEXT: Hash: 0x0000000000000009
80 MIX4-NEXT: Counters: 4
81 MIX4-NEXT: Block counts: [3000, 1000, 2000, 500]
83 Test profile summary won't be affected by -1 counter.
84 RUN: llvm-profdata merge \
85 RUN:     -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
86 RUN:     -suppl-min-size-threshold=0 %p/Inputs/mix_instr.proftext -o %t
87 RUN: llvm-profdata show %t -detailed-summary | FileCheck %s --check-prefix=MIX5
89 MIX5: Instrumentation level: IR
90 MIX5-NEXT: Total functions: 3
91 MIX5-NEXT: Maximum function count: 3000
92 MIX5-NEXT: Maximum internal block count: 2000
93 MIX5-NEXT: Total number of blocks: 9
94 MIX5-NEXT: Total count: 6525
95 MIX5-NEXT: Detailed summary:
96 MIX5-NEXT: 3 blocks with count >= 1000 account for 80 percentage of the total counts.
97 MIX5-NEXT: 3 blocks with count >= 1000 account for 90 percentage of the total counts.
98 MIX5-NEXT: 4 blocks with count >= 500 account for 95 percentage of the total counts.
99 MIX5-NEXT: 4 blocks with count >= 500 account for 99 percentage of the total counts.
100 MIX5-NEXT: 6 blocks with count >= 12 account for 99.9 percentage of the total counts.
101 MIX5-NEXT: 6 blocks with count >= 12 account for 99.99 percentage of the total counts.
102 MIX5-NEXT: 6 blocks with count >= 12 account for 99.999 percentage of the total counts.