xref: /llvm-project/llvm/test/tools/llvm-profdata/memprof-basic.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.memprofraw --profiled-binary %p/Inputs/basic.memprofexe -o - | FileCheck %s
5
6We expect 2 MIB entries, 1 each for the malloc calls in the program. Any
7additional allocations which do not originate from the main binary are pruned.
8
9CHECK:  MemprofProfile:
10CHECK-NEXT:   Summary:
11CHECK-NEXT:     Version: 4
12CHECK-NEXT:     NumSegments: {{[0-9]+}}
13CHECK-NEXT:     NumMibInfo: 2
14CHECK-NEXT:     NumAllocFunctions: 1
15CHECK-NEXT:     NumStackOffsets: 2
16CHECK-NEXT:   Segments:
17CHECK-NEXT:   -
18CHECK-NEXT:     BuildId: {{[[:xdigit:]]+}}
19CHECK-NEXT:     Start: 0x{{[[:xdigit:]]+}}
20CHECK-NEXT:     End: 0x{{[[:xdigit:]]+}}
21CHECK-NEXT:     Offset: 0x{{[[:xdigit:]]+}}
22CHECK-NEXT:   -
23
24CHECK:   Records:
25CHECK-NEXT:   -
26CHECK-NEXT:     FunctionGUID: {{[0-9]+}}
27CHECK-NEXT:     AllocSites:
28CHECK-NEXT:     -
29CHECK-NEXT:       Callstack:
30CHECK-NEXT:       -
31CHECK-NEXT:         Function: {{[0-9]+}}
32CHECK-NEXT:         SymbolName: main
33CHECK-NEXT:         LineOffset: 1
34CHECK-NEXT:         Column: 21
35CHECK-NEXT:         Inline: 0
36CHECK-NEXT:       MemInfoBlock:
37CHECK-NEXT:         AllocCount: 1
38CHECK-NEXT:         TotalAccessCount: 2
39CHECK-NEXT:         MinAccessCount: 2
40CHECK-NEXT:         MaxAccessCount: 2
41CHECK-NEXT:         TotalSize: 10
42CHECK-NEXT:         MinSize: 10
43CHECK-NEXT:         MaxSize: 10
44CHECK-NEXT:         AllocTimestamp: {{[0-9]+}}
45CHECK-NEXT:         DeallocTimestamp: {{[0-9]+}}
46CHECK-NEXT:         TotalLifetime: 0
47CHECK-NEXT:         MinLifetime: 0
48CHECK-NEXT:         MaxLifetime: 0
49CHECK-NEXT:         AllocCpuId: {{[0-9]+}}
50CHECK-NEXT:         DeallocCpuId: {{[0-9]+}}
51CHECK-NEXT:         NumMigratedCpu: 0
52CHECK-NEXT:         NumLifetimeOverlaps: 0
53CHECK-NEXT:         NumSameAllocCpu: 0
54CHECK-NEXT:         NumSameDeallocCpu: 0
55CHECK-NEXT:         DataTypeId: {{[0-9]+}}
56CHECK-NEXT:         TotalAccessDensity: 20
57CHECK-NEXT:         MinAccessDensity: 20
58CHECK-NEXT:         MaxAccessDensity: 20
59CHECK-NEXT:         TotalLifetimeAccessDensity: 20000
60CHECK-NEXT:         MinLifetimeAccessDensity: 20000
61CHECK-NEXT:         MaxLifetimeAccessDensity: 20000
62CHECK-NEXT:         AccessHistogramSize: 0
63CHECK-NEXT:         AccessHistogram: 0
64CHECK-NEXT:     -
65CHECK-NEXT:       Callstack:
66CHECK-NEXT:       -
67CHECK-NEXT:         Function: {{[0-9]+}}
68CHECK-NEXT:         SymbolName: main
69CHECK-NEXT:         LineOffset: 4
70CHECK-NEXT:         Column: 15
71CHECK-NEXT:         Inline: 0
72CHECK-NEXT:       MemInfoBlock:
73CHECK-NEXT:         AllocCount: 1
74CHECK-NEXT:         TotalAccessCount: 2
75CHECK-NEXT:         MinAccessCount: 2
76CHECK-NEXT:         MaxAccessCount: 2
77CHECK-NEXT:         TotalSize: 10
78CHECK-NEXT:         MinSize: 10
79CHECK-NEXT:         MaxSize: 10
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: 20
93CHECK-NEXT:         MinAccessDensity: 20
94CHECK-NEXT:         MaxAccessDensity: 20
95CHECK-NEXT:         TotalLifetimeAccessDensity: 20000
96CHECK-NEXT:         MinLifetimeAccessDensity: 20000
97CHECK-NEXT:         MaxLifetimeAccessDensity: 20000
98CHECK-NEXT:         AccessHistogramSize: 0
99CHECK-NEXT:         AccessHistogram: 0