
Reapply #147854 after fixes merged in #151398. Change memory access histogram storage from uint64_t to uint16_t to reduce profile size on disk. This change updates the raw profile format to v5. Also add a histogram test in compiler-rt since we didn't have one before. With this change the histogram memprof raw for the basic test reduces from 75KB -> 20KB.
100 lines
3.4 KiB
Plaintext
100 lines
3.4 KiB
Plaintext
REQUIRES: x86_64-linux
|
|
|
|
To update the inputs used below run Inputs/update_memprof_inputs.sh /path/to/updated/clang
|
|
RUN: llvm-profdata show --memory %p/Inputs/padding-histogram.memprofraw --profiled-binary %p/Inputs/padding-histogram.memprofexe -o - | FileCheck %s
|
|
|
|
We expect 2 different MIBs with histogram values. This test is to make sure we properly deal with padding.
|
|
|
|
CHECK: MemprofProfile:
|
|
CHECK-NEXT: Summary:
|
|
CHECK-NEXT: Version: 5
|
|
CHECK-NEXT: NumSegments: {{[0-9]+}}
|
|
CHECK-NEXT: NumMibInfo: 2
|
|
CHECK-NEXT: NumAllocFunctions: 1
|
|
CHECK-NEXT: NumStackOffsets: 2
|
|
CHECK-NEXT: Segments:
|
|
CHECK-NEXT: -
|
|
CHECK-NEXT: BuildId: {{[[:xdigit:]]+}}
|
|
CHECK-NEXT: Start: 0x{{[[:xdigit:]]+}}
|
|
CHECK-NEXT: End: 0x{{[[:xdigit:]]+}}
|
|
CHECK-NEXT: Offset: 0x{{[[:xdigit:]]+}}
|
|
CHECK-NEXT: -
|
|
|
|
CHECK: Records:
|
|
CHEC-NEXT FunctionGUID: {{[0-9]+}}
|
|
CHEC-NEXT AllocSites:
|
|
CHEC-NEXT -
|
|
CHEC-NEXT Callstack:
|
|
CHEC-NEXT -
|
|
CHEC-NEXT Function: {{[0-9]+}}
|
|
CHEC-NEXT SymbolName: main
|
|
CHEC-NEXT LineOffset: 3
|
|
CHEC-NEXT Column: 10
|
|
CHEC-NEXT Inline: 0
|
|
CHEC-NEXT MemInfoBlock:
|
|
CHEC-NEXT AllocCount: 1
|
|
CHEC-NEXT TotalAccessCount: 5
|
|
CHEC-NEXT MinAccessCount: 5
|
|
CHEC-NEXT MaxAccessCount: 5
|
|
CHEC-NEXT TotalSize: 24
|
|
CHEC-NEXT MinSize: 24
|
|
CHEC-NEXT MaxSize: 24
|
|
CHEC-NEXT AllocTimestamp: {{[0-9]+}}
|
|
CHEC-NEXT DeallocTimestamp: {{[0-9]+}}
|
|
CHEC-NEXT TotalLifetime: 0
|
|
CHEC-NEXT MinLifetime: 0
|
|
CHEC-NEXT MaxLifetime: 0
|
|
CHEC-NEXT AllocCpuId: 11
|
|
CHEC-NEXT DeallocCpuId: 11
|
|
CHEC-NEXT NumMigratedCpu: 0
|
|
CHEC-NEXT NumLifetimeOverlaps: 0
|
|
CHEC-NEXT NumSameAllocCpu: 0
|
|
CHEC-NEXT NumSameDeallocCpu: 0
|
|
CHEC-NEXT DataTypeId: 0
|
|
CHEC-NEXT TotalAccessDensity: 20
|
|
CHEC-NEXT MinAccessDensity: 20
|
|
CHEC-NEXT MaxAccessDensity: 20
|
|
CHEC-NEXT TotalLifetimeAccessDensity: 20000
|
|
CHEC-NEXT MinLifetimeAccessDensity: 20000
|
|
CHEC-NEXT MaxLifetimeAccessDensity: 20000
|
|
CHEC-NEXT AccessHistogramSize: 3
|
|
CHEC-NEXT AccessHistogram: {{[0-9]+}}
|
|
CHEC-NEXT AccessHistogramValues: -2 -1 -2
|
|
CHEC-NEXT -
|
|
CHEC-NEXT Callstack:
|
|
CHEC-NEXT -
|
|
CHEC-NEXT Function: {{[0-9]+}}
|
|
CHEC-NEXT SymbolName: main
|
|
CHEC-NEXT LineOffset: 10
|
|
CHEC-NEXT Column: 10
|
|
CHEC-NEXT Inline: 0
|
|
CHEC-NEXT MemInfoBlock:
|
|
CHEC-NEXT AllocCount: 1
|
|
CHEC-NEXT TotalAccessCount: 4
|
|
CHEC-NEXT MinAccessCount: 4
|
|
CHEC-NEXT MaxAccessCount: 4
|
|
CHEC-NEXT TotalSize: 48
|
|
CHEC-NEXT MinSize: 48
|
|
CHEC-NEXT MaxSize: 48
|
|
CHEC-NEXT AllocTimestamp: {{[0-9]+}}
|
|
CHEC-NEXT DeallocTimestamp: {{[0-9]+}}
|
|
CHEC-NEXT TotalLifetime: 0
|
|
CHEC-NEXT MinLifetime: 0
|
|
CHEC-NEXT MaxLifetime: 0
|
|
CHEC-NEXT AllocCpuId: 11
|
|
CHEC-NEXT DeallocCpuId: 11
|
|
CHEC-NEXT NumMigratedCpu: 0
|
|
CHEC-NEXT NumLifetimeOverlaps: 0
|
|
CHEC-NEXT NumSameAllocCpu: 0
|
|
CHEC-NEXT NumSameDeallocCpu: 0
|
|
CHEC-NEXT DataTypeId: 0
|
|
CHEC-NEXT TotalAccessDensity: 8
|
|
CHEC-NEXT MinAccessDensity: 8
|
|
CHEC-NEXT MaxAccessDensity: 8
|
|
CHEC-NEXT TotalLifetimeAccessDensity: 8000
|
|
CHEC-NEXT MinLifetimeAccessDensity: 8000
|
|
CHEC-NEXT MaxLifetimeAccessDensity: 8000
|
|
CHEC-NEXT AccessHistogramSize: 6
|
|
CHEC-NEXT AccessHistogram: {{[0-9]+}}
|
|
CHEC-NEXT AccessHistogramValues: -2 -0 -0 -0 -1 -1
|