llvm/llvm/test/tools/llvm-profdata/memprof-padding-histogram.test

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: 4
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