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