1REQUIRES: x86_64-linux 2 3Since the profile contains virtual addresses for the callstack, 4we do not expect the raw binary profile to be deterministic. The 5summary should be deterministic apart from changes to the shared 6libraries linked in which could change the number of segments 7recorded. 8 9To update the inputs used below run Inputs/update_memprof_inputs.sh /path/to/updated/clang 10RUN: llvm-profdata show --memory %p/Inputs/pic.memprofraw --profiled-binary %p/Inputs/pic.memprofexe -o - 2>&1 | FileCheck %s 11 12CHECK: MemprofProfile: 13CHECK-NEXT: Summary: 14CHECK-NEXT: Version: 4 15CHECK-NEXT: NumSegments: {{[0-9]+}} 16CHECK-NEXT: NumMibInfo: 2 17CHECK-NEXT: NumAllocFunctions: 1 18CHECK-NEXT: NumStackOffsets: 2 19CHECK-NEXT: Segments: 20CHECK-NEXT: - 21CHECK-NEXT: BuildId: {{[[:xdigit:]]+}} 22CHECK-NEXT: Start: 0x{{[[:xdigit:]]+}} 23CHECK-NEXT: End: 0x{{[[:xdigit:]]+}} 24CHECK-NEXT: Offset: 0x{{[[:xdigit:]]+}} 25CHECK-NEXT: - 26 27CHECK: Records: 28CHECK-NEXT: - 29CHECK-NEXT: FunctionGUID: {{[0-9]+}} 30CHECK-NEXT: AllocSites: 31CHECK-NEXT: - 32CHECK-NEXT: Callstack: 33CHECK-NEXT: - 34CHECK-NEXT: Function: {{[0-9]+}} 35CHECK-NEXT: SymbolName: main 36CHECK-NEXT: LineOffset: 1 37CHECK-NEXT: Column: 21 38CHECK-NEXT: Inline: 0 39CHECK-NEXT: MemInfoBlock: 40CHECK-NEXT: AllocCount: 1 41CHECK-NEXT: TotalAccessCount: 2 42CHECK-NEXT: MinAccessCount: 2 43CHECK-NEXT: MaxAccessCount: 2 44CHECK-NEXT: TotalSize: 10 45CHECK-NEXT: MinSize: 10 46CHECK-NEXT: MaxSize: 10 47CHECK-NEXT: AllocTimestamp: {{[0-9]+}} 48CHECK-NEXT: DeallocTimestamp: {{[0-9]+}} 49CHECK-NEXT: TotalLifetime: 0 50CHECK-NEXT: MinLifetime: 0 51CHECK-NEXT: MaxLifetime: 0 52CHECK-NEXT: AllocCpuId: {{[0-9]+}} 53CHECK-NEXT: DeallocCpuId: {{[0-9]+}} 54CHECK-NEXT: NumMigratedCpu: 0 55CHECK-NEXT: NumLifetimeOverlaps: 0 56CHECK-NEXT: NumSameAllocCpu: 0 57CHECK-NEXT: NumSameDeallocCpu: 0 58CHECK-NEXT: DataTypeId: {{[0-9]+}} 59CHECK-NEXT: TotalAccessDensity: 20 60CHECK-NEXT: MinAccessDensity: 20 61CHECK-NEXT: MaxAccessDensity: 20 62CHECK-NEXT: TotalLifetimeAccessDensity: 20000 63CHECK-NEXT: MinLifetimeAccessDensity: 20000 64CHECK-NEXT: MaxLifetimeAccessDensity: 20000 65CHECK-NEXT: AccessHistogramSize: 0 66CHECK-NEXT: AccessHistogram: 0 67 68CHECK-NEXT: - 69CHECK-NEXT: Callstack: 70CHECK-NEXT: - 71CHECK-NEXT: Function: {{[0-9]+}} 72CHECK-NEXT: SymbolName: main 73CHECK-NEXT: LineOffset: 4 74CHECK-NEXT: Column: 15 75CHECK-NEXT: Inline: 0 76CHECK-NEXT: MemInfoBlock: 77CHECK-NEXT: AllocCount: 1 78CHECK-NEXT: TotalAccessCount: 2 79CHECK-NEXT: MinAccessCount: 2 80CHECK-NEXT: MaxAccessCount: 2 81CHECK-NEXT: TotalSize: 10 82CHECK-NEXT: MinSize: 10 83CHECK-NEXT: MaxSize: 10 84CHECK-NEXT: AllocTimestamp: {{[0-9]+}} 85CHECK-NEXT: DeallocTimestamp: {{[0-9]+}} 86CHECK-NEXT: TotalLifetime: 0 87CHECK-NEXT: MinLifetime: 0 88CHECK-NEXT: MaxLifetime: 0 89CHECK-NEXT: AllocCpuId: {{[0-9]+}} 90CHECK-NEXT: DeallocCpuId: {{[0-9]+}} 91CHECK-NEXT: NumMigratedCpu: 0 92CHECK-NEXT: NumLifetimeOverlaps: 0 93CHECK-NEXT: NumSameAllocCpu: 0 94CHECK-NEXT: NumSameDeallocCpu: 0 95CHECK-NEXT: DataTypeId: {{[0-9]+}} 96CHECK-NEXT: TotalAccessDensity: 20 97CHECK-NEXT: MinAccessDensity: 20 98CHECK-NEXT: MaxAccessDensity: 20 99CHECK-NEXT: TotalLifetimeAccessDensity: 20000 100CHECK-NEXT: MinLifetimeAccessDensity: 20000 101CHECK-NEXT: MaxLifetimeAccessDensity: 20000 102CHECK-NEXT: AccessHistogramSize: 0 103CHECK-NEXT: AccessHistogram: 0