xref: /llvm-project/llvm/test/tools/llvm-profdata/memprof-padding-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/padding-histogram.memprofraw --profiled-binary %p/Inputs/padding-histogram.memprofexe -o - | FileCheck %s
5
6We expect 2 different MIBs with histogram values. This test is to make sure we properly deal with padding.
7
8CHECK: MemprofProfile:
9CHECK-NEXT:   Summary:
10CHECK-NEXT:     Version: 4
11CHECK-NEXT:     NumSegments: {{[0-9]+}}
12CHECK-NEXT:     NumMibInfo: 2
13CHECK-NEXT:     NumAllocFunctions: 1
14CHECK-NEXT:     NumStackOffsets: 2
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:
24CHEC-NEXT    FunctionGUID: {{[0-9]+}}
25CHEC-NEXT    AllocSites:
26CHEC-NEXT    -
27CHEC-NEXT      Callstack:
28CHEC-NEXT      -
29CHEC-NEXT        Function: {{[0-9]+}}
30CHEC-NEXT        SymbolName: main
31CHEC-NEXT        LineOffset: 3
32CHEC-NEXT        Column: 10
33CHEC-NEXT        Inline: 0
34CHEC-NEXT      MemInfoBlock:
35CHEC-NEXT        AllocCount: 1
36CHEC-NEXT        TotalAccessCount: 5
37CHEC-NEXT        MinAccessCount: 5
38CHEC-NEXT        MaxAccessCount: 5
39CHEC-NEXT        TotalSize: 24
40CHEC-NEXT        MinSize: 24
41CHEC-NEXT        MaxSize: 24
42CHEC-NEXT        AllocTimestamp: {{[0-9]+}}
43CHEC-NEXT        DeallocTimestamp: {{[0-9]+}}
44CHEC-NEXT        TotalLifetime: 0
45CHEC-NEXT        MinLifetime: 0
46CHEC-NEXT        MaxLifetime: 0
47CHEC-NEXT        AllocCpuId: 11
48CHEC-NEXT        DeallocCpuId: 11
49CHEC-NEXT        NumMigratedCpu: 0
50CHEC-NEXT        NumLifetimeOverlaps: 0
51CHEC-NEXT        NumSameAllocCpu: 0
52CHEC-NEXT        NumSameDeallocCpu: 0
53CHEC-NEXT        DataTypeId: 0
54CHEC-NEXT        TotalAccessDensity: 20
55CHEC-NEXT        MinAccessDensity: 20
56CHEC-NEXT        MaxAccessDensity: 20
57CHEC-NEXT        TotalLifetimeAccessDensity: 20000
58CHEC-NEXT        MinLifetimeAccessDensity: 20000
59CHEC-NEXT        MaxLifetimeAccessDensity: 20000
60CHEC-NEXT        AccessHistogramSize: 3
61CHEC-NEXT        AccessHistogram: {{[0-9]+}}
62CHEC-NEXT        AccessHistogramValues: -2 -1 -2
63CHEC-NEXT    -
64CHEC-NEXT      Callstack:
65CHEC-NEXT      -
66CHEC-NEXT        Function: {{[0-9]+}}
67CHEC-NEXT        SymbolName: main
68CHEC-NEXT        LineOffset: 10
69CHEC-NEXT        Column: 10
70CHEC-NEXT        Inline: 0
71CHEC-NEXT      MemInfoBlock:
72CHEC-NEXT        AllocCount: 1
73CHEC-NEXT        TotalAccessCount: 4
74CHEC-NEXT        MinAccessCount: 4
75CHEC-NEXT        MaxAccessCount: 4
76CHEC-NEXT        TotalSize: 48
77CHEC-NEXT        MinSize: 48
78CHEC-NEXT        MaxSize: 48
79CHEC-NEXT        AllocTimestamp: {{[0-9]+}}
80CHEC-NEXT        DeallocTimestamp: {{[0-9]+}}
81CHEC-NEXT        TotalLifetime: 0
82CHEC-NEXT        MinLifetime: 0
83CHEC-NEXT        MaxLifetime: 0
84CHEC-NEXT        AllocCpuId: 11
85CHEC-NEXT        DeallocCpuId: 11
86CHEC-NEXT        NumMigratedCpu: 0
87CHEC-NEXT        NumLifetimeOverlaps: 0
88CHEC-NEXT        NumSameAllocCpu: 0
89CHEC-NEXT        NumSameDeallocCpu: 0
90CHEC-NEXT        DataTypeId: 0
91CHEC-NEXT        TotalAccessDensity: 8
92CHEC-NEXT        MinAccessDensity: 8
93CHEC-NEXT        MaxAccessDensity: 8
94CHEC-NEXT        TotalLifetimeAccessDensity: 8000
95CHEC-NEXT        MinLifetimeAccessDensity: 8000
96CHEC-NEXT        MaxLifetimeAccessDensity: 8000
97CHEC-NEXT        AccessHistogramSize: 6
98CHEC-NEXT        AccessHistogram: {{[0-9]+}}
99CHEC-NEXT        AccessHistogramValues: -2 -0 -0 -0 -1 -1