xref: /llvm-project/llvm/test/tools/llvm-profdata/memprof-basic-histogram.test (revision 30b93db5476e3ae2efdaba25fb53fcc3c081da77)
1REQUIRES: x86_64-linux
2
3To update the inputs used below run Inputs/update_memprof_inputs.sh /path/to/updated/clang
4RUN: llvm-profdata show --memory %p/Inputs/basic-histogram.memprofraw --profiled-binary %p/Inputs/basic-histogram.memprofexe -o - | FileCheck %s
5
6We expect 5 MIBs, each with different AccessHistogramValues.
7
8CHECK: MemprofProfile:
9CHECK-NEXT:   Summary:
10CHECK-NEXT:     Version: 4
11CHECK-NEXT:     NumSegments: {{[0-9]+}}
12CHECK-NEXT:     NumMibInfo: 5
13CHECK-NEXT:     NumAllocFunctions: 3
14CHECK-NEXT:     NumStackOffsets: 5
15CHECK-NEXT:   Segments:
16CHECK-NEXT:   -
17CHECK-NEXT:     BuildId: {{[[:xdigit:]]+}}
18CHECK-NEXT:     Start: 0x{{[[:xdigit:]]+}}
19CHECK-NEXT:     End: 0x{{[[:xdigit:]]+}}
20CHECK-NEXT:     Offset: 0x{{[[:xdigit:]]+}}
21CHECK-NEXT:   -
22
23CHECK:   Records:
24CHECK-NEXT:   -
25CHECK-NEXT:     FunctionGUID: {{[0-9]+}}
26CHECK-NEXT:     AllocSites:
27CHECK-NEXT:     -
28CHECK-NEXT:       Callstack:
29CHECK-NEXT:       -
30CHECK-NEXT:         Function: {{[0-9]+}}
31CHECK-NEXT:         SymbolName: main
32CHECK-NEXT:         LineOffset: 2
33CHECK-NEXT:         Column: 10
34CHECK-NEXT:         Inline: 0
35CHECK-NEXT:       MemInfoBlock:
36CHECK-NEXT:         AllocCount: 1
37CHECK-NEXT:         TotalAccessCount: 8
38CHECK-NEXT:         MinAccessCount: 8
39CHECK-NEXT:         MaxAccessCount: 8
40CHECK-NEXT:         TotalSize: 64
41CHECK-NEXT:         MinSize: 64
42CHECK-NEXT:         MaxSize: 64
43CHECK-NEXT:         AllocTimestamp: {{[0-9]+}}
44CHECK-NEXT:         DeallocTimestamp: {{[0-9]+}}
45CHECK-NEXT:         TotalLifetime: 0
46CHECK-NEXT:         MinLifetime: 0
47CHECK-NEXT:         MaxLifetime: 0
48CHECK-NEXT:         AllocCpuId: {{[0-9]+}}
49CHECK-NEXT:         DeallocCpuId: {{[0-9]+}}
50CHECK-NEXT:         NumMigratedCpu: 0
51CHECK-NEXT:         NumLifetimeOverlaps: 0
52CHECK-NEXT:         NumSameAllocCpu: 0
53CHECK-NEXT:         NumSameDeallocCpu: 0
54CHECK-NEXT:         DataTypeId: {{[0-9]+}}
55CHECK-NEXT:         TotalAccessDensity: 12
56CHECK-NEXT:         MinAccessDensity: 12
57CHECK-NEXT:         MaxAccessDensity: 12
58CHECK-NEXT:         TotalLifetimeAccessDensity: 12000
59CHECK-NEXT:         MinLifetimeAccessDensity: 12000
60CHECK-NEXT:         MaxLifetimeAccessDensity: 12000
61CHECK-NEXT:         AccessHistogramSize: 8
62CHECK-NEXT:         AccessHistogram: {{[0-9]+}}
63CHECK-NEXT:         AccessHistogramValues: 1 1 1 1 1 1 1 1
64CHECK-NEXT:     -
65CHECK-NEXT:       Callstack:
66CHECK-NEXT:       -
67CHECK-NEXT:         Function: {{[0-9]+}}
68CHECK-NEXT:         SymbolName: main
69CHECK-NEXT:         LineOffset: 14
70CHECK-NEXT:         Column: 10
71CHECK-NEXT:         Inline: 0
72CHECK-NEXT:       MemInfoBlock:
73CHECK-NEXT:         AllocCount: 1
74CHECK-NEXT:         TotalAccessCount: 36
75CHECK-NEXT:         MinAccessCount: 36
76CHECK-NEXT:         MaxAccessCount: 36
77CHECK-NEXT:         TotalSize: 64
78CHECK-NEXT:         MinSize: 64
79CHECK-NEXT:         MaxSize: 64
80CHECK-NEXT:         AllocTimestamp: {{[0-9]+}}
81CHECK-NEXT:         DeallocTimestamp: {{[0-9]+}}
82CHECK-NEXT:         TotalLifetime: 0
83CHECK-NEXT:         MinLifetime: 0
84CHECK-NEXT:         MaxLifetime: 0
85CHECK-NEXT:         AllocCpuId: {{[0-9]+}}
86CHECK-NEXT:         DeallocCpuId: {{[0-9]+}}
87CHECK-NEXT:         NumMigratedCpu: 0
88CHECK-NEXT:         NumLifetimeOverlaps: 0
89CHECK-NEXT:         NumSameAllocCpu: 0
90CHECK-NEXT:         NumSameDeallocCpu: 0
91CHECK-NEXT:         DataTypeId: {{[0-9]+}}
92CHECK-NEXT:         TotalAccessDensity: 56
93CHECK-NEXT:         MinAccessDensity: 56
94CHECK-NEXT:         MaxAccessDensity: 56
95CHECK-NEXT:         TotalLifetimeAccessDensity: 56000
96CHECK-NEXT:         MinLifetimeAccessDensity: 56000
97CHECK-NEXT:         MaxLifetimeAccessDensity: 56000
98CHECK-NEXT:         AccessHistogramSize: 8
99CHECK-NEXT:         AccessHistogram: {{[0-9]+}}
100CHECK-NEXT:         AccessHistogramValues: 8 7 6 5 4 3 2 1
101CHECK-NEXT:     -
102CHECK-NEXT:       Callstack:
103CHECK-NEXT:       -
104CHECK-NEXT:         Function: {{[0-9]+}}
105CHECK-NEXT:         SymbolName: main
106CHECK-NEXT:         LineOffset: 54
107CHECK-NEXT:         Column: 10
108CHECK-NEXT:         Inline: 0
109CHECK-NEXT:       MemInfoBlock:
110CHECK-NEXT:         AllocCount: 1
111CHECK-NEXT:         TotalAccessCount: 1
112CHECK-NEXT:         MinAccessCount: 1
113CHECK-NEXT:         MaxAccessCount: 1
114CHECK-NEXT:         TotalSize: 64
115CHECK-NEXT:         MinSize: 64
116CHECK-NEXT:         MaxSize: 64
117CHECK-NEXT:         AllocTimestamp: {{[0-9]+}}
118CHECK-NEXT:         DeallocTimestamp: {{[0-9]+}}
119CHECK-NEXT:         TotalLifetime: 0
120CHECK-NEXT:         MinLifetime: 0
121CHECK-NEXT:         MaxLifetime: 0
122CHECK-NEXT:         AllocCpuId: {{[0-9]+}}
123CHECK-NEXT:         DeallocCpuId: {{[0-9]+}}
124CHECK-NEXT:         NumMigratedCpu: 0
125CHECK-NEXT:         NumLifetimeOverlaps: 0
126CHECK-NEXT:         NumSameAllocCpu: 0
127CHECK-NEXT:         NumSameDeallocCpu: 0
128CHECK-NEXT:         DataTypeId: {{[0-9]+}}
129CHECK-NEXT:         TotalAccessDensity: 1
130CHECK-NEXT:         MinAccessDensity: 1
131CHECK-NEXT:         MaxAccessDensity: 1
132CHECK-NEXT:         TotalLifetimeAccessDensity: 1000
133CHECK-NEXT:         MinLifetimeAccessDensity: 1000
134CHECK-NEXT:         MaxLifetimeAccessDensity: 1000
135CHECK-NEXT:         AccessHistogramSize: 8
136CHECK-NEXT:         AccessHistogram: {{[0-9]+}}
137CHECK-NEXT:         AccessHistogramValues: 1 0 0 0 0 0 0 0
138CHECK-NEXT:     CallSites:
139CHECK-NEXT:     -
140CHECK-NEXT:       -
141CHECK-NEXT:         Function: {{[0-9]+}}
142CHECK-NEXT:         SymbolName: main
143CHECK-NEXT:         LineOffset: 59
144CHECK-NEXT:         Column: 5
145CHECK-NEXT:         Inline: 0
146CHECK-NEXT:     -
147CHECK-NEXT:       -
148CHECK-NEXT:         Function: {{[0-9]+}}
149CHECK-NEXT:         SymbolName: main
150CHECK-NEXT:         LineOffset: 64
151CHECK-NEXT:         Column: 5
152CHECK-NEXT:         Inline: 0
153CHECK-NEXT:   -
154CHECK-NEXT:     FunctionGUID: {{[0-9]+}}
155CHECK-NEXT:     AllocSites:
156CHECK-NEXT:     -
157CHECK-NEXT:       Callstack:
158CHECK-NEXT:       -
159CHECK-NEXT:         Function: {{[0-9]+}}
160CHECK-NEXT:         SymbolName: _Z3foov
161CHECK-NEXT:         LineOffset: 2
162CHECK-NEXT:         Column: 10
163CHECK-NEXT:         Inline: 0
164CHECK-NEXT:       -
165CHECK-NEXT:         Function: {{[0-9]+}}
166CHECK-NEXT:         SymbolName: main
167CHECK-NEXT:         LineOffset: 59
168CHECK-NEXT:         Column: 5
169CHECK-NEXT:         Inline: 0
170CHECK-NEXT:       MemInfoBlock:
171CHECK-NEXT:         AllocCount: 21
172CHECK-NEXT:         TotalAccessCount: 168
173CHECK-NEXT:         MinAccessCount: 8
174CHECK-NEXT:         MaxAccessCount: 8
175CHECK-NEXT:         TotalSize: 1344
176CHECK-NEXT:         MinSize: 64
177CHECK-NEXT:         MaxSize: 64
178CHECK-NEXT:         AllocTimestamp: {{[0-9]+}}
179CHECK-NEXT:         DeallocTimestamp: {{[0-9]+}}
180CHECK-NEXT:         TotalLifetime: 0
181CHECK-NEXT:         MinLifetime: 0
182CHECK-NEXT:         MaxLifetime: 0
183CHECK-NEXT:         AllocCpuId: {{[0-9]+}}
184CHECK-NEXT:         DeallocCpuId: {{[0-9]+}}
185CHECK-NEXT:         NumMigratedCpu: 0
186CHECK-NEXT:         NumLifetimeOverlaps: 0
187CHECK-NEXT:         NumSameAllocCpu: 20
188CHECK-NEXT:         NumSameDeallocCpu: 20
189CHECK-NEXT:         DataTypeId: {{[0-9]+}}
190CHECK-NEXT:         TotalAccessDensity: 252
191CHECK-NEXT:         MinAccessDensity: 12
192CHECK-NEXT:         MaxAccessDensity: 12
193CHECK-NEXT:         TotalLifetimeAccessDensity: 252000
194CHECK-NEXT:         MinLifetimeAccessDensity: 12000
195CHECK-NEXT:         MaxLifetimeAccessDensity: 12000
196CHECK-NEXT:         AccessHistogramSize: 8
197CHECK-NEXT:         AccessHistogram: {{[0-9]+}}
198CHECK-NEXT:         AccessHistogramValues: 21 21 21 21 21 21 21 21
199CHECK-NEXT:   -
200CHECK-NEXT:     FunctionGUID: {{[0-9]+}}
201CHECK-NEXT:     AllocSites:
202CHECK-NEXT:     -
203CHECK-NEXT:       Callstack:
204CHECK-NEXT:       -
205CHECK-NEXT:         Function: {{[0-9]+}}
206CHECK-NEXT:         SymbolName: _Z3barv
207CHECK-NEXT:         LineOffset: 2
208CHECK-NEXT:         Column: 10
209CHECK-NEXT:         Inline: 0
210CHECK-NEXT:       -
211CHECK-NEXT:         Function: {{[0-9]+}}
212CHECK-NEXT:         SymbolName: main
213CHECK-NEXT:         LineOffset: 64
214CHECK-NEXT:         Column: 5
215CHECK-NEXT:         Inline: 0
216CHECK-NEXT:       MemInfoBlock:
217CHECK-NEXT:         AllocCount: 21
218CHECK-NEXT:         TotalAccessCount: 756
219CHECK-NEXT:         MinAccessCount: 36
220CHECK-NEXT:         MaxAccessCount: 36
221CHECK-NEXT:         TotalSize: 1344
222CHECK-NEXT:         MinSize: 64
223CHECK-NEXT:         MaxSize: 64
224CHECK-NEXT:         AllocTimestamp: {{[0-9]+}}
225CHECK-NEXT:         DeallocTimestamp: {{[0-9]+}}
226CHECK-NEXT:         TotalLifetime: 0
227CHECK-NEXT:         MinLifetime: 0
228CHECK-NEXT:         MaxLifetime: 0
229CHECK-NEXT:         AllocCpuId: {{[0-9]+}}
230CHECK-NEXT:         DeallocCpuId: {{[0-9]+}}
231CHECK-NEXT:         NumMigratedCpu: 0
232CHECK-NEXT:         NumLifetimeOverlaps: 0
233CHECK-NEXT:         NumSameAllocCpu: 20
234CHECK-NEXT:         NumSameDeallocCpu: 20
235CHECK-NEXT:         DataTypeId: {{[0-9]+}}
236CHECK-NEXT:         TotalAccessDensity: 1176
237CHECK-NEXT:         MinAccessDensity: 56
238CHECK-NEXT:         MaxAccessDensity: 56
239CHECK-NEXT:         TotalLifetimeAccessDensity: 1176000
240CHECK-NEXT:         MinLifetimeAccessDensity: 56000
241CHECK-NEXT:         MaxLifetimeAccessDensity: 56000
242CHECK-NEXT:         AccessHistogramSize: 8
243CHECK-NEXT:         AccessHistogram: {{[0-9]+}}
244CHECK-NEXT:         AccessHistogramValues: 168 147 126 105 84 63 42 21