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