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