diff --git a/clang/test/CodeGen/Inputs/memprof.exe b/clang/test/CodeGen/Inputs/memprof.exe index 955c0d6b0e87a7..c3b28a8ed9d3d5 100755 Binary files a/clang/test/CodeGen/Inputs/memprof.exe and b/clang/test/CodeGen/Inputs/memprof.exe differ diff --git a/clang/test/CodeGen/Inputs/memprof.memprofraw b/clang/test/CodeGen/Inputs/memprof.memprofraw index 07a3310c122aff..7ae89bff648af5 100644 Binary files a/clang/test/CodeGen/Inputs/memprof.memprofraw and b/clang/test/CodeGen/Inputs/memprof.memprofraw differ diff --git a/compiler-rt/include/profile/MIBEntryDef.inc b/compiler-rt/include/profile/MIBEntryDef.inc index f5c6f0e4924b29..794163ae10386c 100644 --- a/compiler-rt/include/profile/MIBEntryDef.inc +++ b/compiler-rt/include/profile/MIBEntryDef.inc @@ -45,3 +45,9 @@ MIBEntryDef(NumLifetimeOverlaps = 16, NumLifetimeOverlaps, uint32_t) MIBEntryDef(NumSameAllocCpu = 17, NumSameAllocCpu, uint32_t) MIBEntryDef(NumSameDeallocCpu = 18, NumSameDeallocCpu, uint32_t) MIBEntryDef(DataTypeId = 19, DataTypeId, uint64_t) +MIBEntryDef(TotalAccessDensity = 20, TotalAccessDensity, uint64_t) +MIBEntryDef(MinAccessDensity = 21, MinAccessDensity, uint32_t) +MIBEntryDef(MaxAccessDensity = 22, MaxAccessDensity, uint32_t) +MIBEntryDef(TotalLifetimeAccessDensity = 23, TotalLifetimeAccessDensity, uint64_t) +MIBEntryDef(MinLifetimeAccessDensity = 24, MinLifetimeAccessDensity, uint32_t) +MIBEntryDef(MaxLifetimeAccessDensity = 25, MaxLifetimeAccessDensity, uint32_t) diff --git a/compiler-rt/include/profile/MemProfData.inc b/compiler-rt/include/profile/MemProfData.inc index ca354ee3329290..c533073da751f2 100644 --- a/compiler-rt/include/profile/MemProfData.inc +++ b/compiler-rt/include/profile/MemProfData.inc @@ -32,7 +32,7 @@ (uint64_t)'o' << 24 | (uint64_t)'f' << 16 | (uint64_t)'r' << 8 | (uint64_t)129) // The version number of the raw binary format. -#define MEMPROF_RAW_VERSION 1ULL +#define MEMPROF_RAW_VERSION 2ULL namespace llvm { namespace memprof { @@ -127,6 +127,19 @@ MemInfoBlock(uint32_t Size, uint64_t AccessCount, uint32_t AllocTs, TotalLifetime = DeallocTimestamp - AllocTimestamp; MinLifetime = TotalLifetime; MaxLifetime = TotalLifetime; + // Access density is accesses per byte. Multiply by 100 to include the + // fractional part. + TotalAccessDensity = AccessCount * 100 / Size; + MinAccessDensity = TotalAccessDensity; + MaxAccessDensity = TotalAccessDensity; + // Lifetime access density is the access density per second of lifetime. + // Multiply by 1000 to convert denominator lifetime to seconds (using a + // minimum lifetime of 1ms to avoid divide by 0. Do the multiplication first + // to reduce truncations to 0. + TotalLifetimeAccessDensity = + TotalAccessDensity * 1000 / (TotalLifetime ? TotalLifetime : 1); + MinLifetimeAccessDensity = TotalLifetimeAccessDensity; + MaxLifetimeAccessDensity = TotalLifetimeAccessDensity; AllocCpuId = AllocCpu; DeallocCpuId = DeallocCpu; NumMigratedCpu = AllocCpuId != DeallocCpuId; @@ -147,6 +160,24 @@ void Merge(const MemInfoBlock &newMIB) { MinLifetime = newMIB.MinLifetime < MinLifetime ? newMIB.MinLifetime : MinLifetime; MaxLifetime = newMIB.MaxLifetime > MaxLifetime ? newMIB.MaxLifetime : MaxLifetime; + TotalAccessDensity += newMIB.TotalAccessDensity; + MinAccessDensity = newMIB.MinAccessDensity < MinAccessDensity + ? newMIB.MinAccessDensity + : MinAccessDensity; + MaxAccessDensity = newMIB.MaxAccessDensity > MaxAccessDensity + ? newMIB.MaxAccessDensity + : MaxAccessDensity; + + TotalLifetimeAccessDensity += newMIB.TotalLifetimeAccessDensity; + MinLifetimeAccessDensity = + newMIB.MinLifetimeAccessDensity < MinLifetimeAccessDensity + ? newMIB.MinLifetimeAccessDensity + : MinLifetimeAccessDensity; + MaxLifetimeAccessDensity = + newMIB.MaxLifetimeAccessDensity > MaxLifetimeAccessDensity + ? newMIB.MaxLifetimeAccessDensity + : MaxLifetimeAccessDensity; + // We know newMIB was deallocated later, so just need to check if it was // allocated before last one deallocated. NumLifetimeOverlaps += newMIB.AllocTimestamp < DeallocTimestamp; diff --git a/llvm/include/llvm/ProfileData/MIBEntryDef.inc b/llvm/include/llvm/ProfileData/MIBEntryDef.inc index f5c6f0e4924b29..794163ae10386c 100644 --- a/llvm/include/llvm/ProfileData/MIBEntryDef.inc +++ b/llvm/include/llvm/ProfileData/MIBEntryDef.inc @@ -45,3 +45,9 @@ MIBEntryDef(NumLifetimeOverlaps = 16, NumLifetimeOverlaps, uint32_t) MIBEntryDef(NumSameAllocCpu = 17, NumSameAllocCpu, uint32_t) MIBEntryDef(NumSameDeallocCpu = 18, NumSameDeallocCpu, uint32_t) MIBEntryDef(DataTypeId = 19, DataTypeId, uint64_t) +MIBEntryDef(TotalAccessDensity = 20, TotalAccessDensity, uint64_t) +MIBEntryDef(MinAccessDensity = 21, MinAccessDensity, uint32_t) +MIBEntryDef(MaxAccessDensity = 22, MaxAccessDensity, uint32_t) +MIBEntryDef(TotalLifetimeAccessDensity = 23, TotalLifetimeAccessDensity, uint64_t) +MIBEntryDef(MinLifetimeAccessDensity = 24, MinLifetimeAccessDensity, uint32_t) +MIBEntryDef(MaxLifetimeAccessDensity = 25, MaxLifetimeAccessDensity, uint32_t) diff --git a/llvm/include/llvm/ProfileData/MemProfData.inc b/llvm/include/llvm/ProfileData/MemProfData.inc index ca354ee3329290..c533073da751f2 100644 --- a/llvm/include/llvm/ProfileData/MemProfData.inc +++ b/llvm/include/llvm/ProfileData/MemProfData.inc @@ -32,7 +32,7 @@ (uint64_t)'o' << 24 | (uint64_t)'f' << 16 | (uint64_t)'r' << 8 | (uint64_t)129) // The version number of the raw binary format. -#define MEMPROF_RAW_VERSION 1ULL +#define MEMPROF_RAW_VERSION 2ULL namespace llvm { namespace memprof { @@ -127,6 +127,19 @@ MemInfoBlock(uint32_t Size, uint64_t AccessCount, uint32_t AllocTs, TotalLifetime = DeallocTimestamp - AllocTimestamp; MinLifetime = TotalLifetime; MaxLifetime = TotalLifetime; + // Access density is accesses per byte. Multiply by 100 to include the + // fractional part. + TotalAccessDensity = AccessCount * 100 / Size; + MinAccessDensity = TotalAccessDensity; + MaxAccessDensity = TotalAccessDensity; + // Lifetime access density is the access density per second of lifetime. + // Multiply by 1000 to convert denominator lifetime to seconds (using a + // minimum lifetime of 1ms to avoid divide by 0. Do the multiplication first + // to reduce truncations to 0. + TotalLifetimeAccessDensity = + TotalAccessDensity * 1000 / (TotalLifetime ? TotalLifetime : 1); + MinLifetimeAccessDensity = TotalLifetimeAccessDensity; + MaxLifetimeAccessDensity = TotalLifetimeAccessDensity; AllocCpuId = AllocCpu; DeallocCpuId = DeallocCpu; NumMigratedCpu = AllocCpuId != DeallocCpuId; @@ -147,6 +160,24 @@ void Merge(const MemInfoBlock &newMIB) { MinLifetime = newMIB.MinLifetime < MinLifetime ? newMIB.MinLifetime : MinLifetime; MaxLifetime = newMIB.MaxLifetime > MaxLifetime ? newMIB.MaxLifetime : MaxLifetime; + TotalAccessDensity += newMIB.TotalAccessDensity; + MinAccessDensity = newMIB.MinAccessDensity < MinAccessDensity + ? newMIB.MinAccessDensity + : MinAccessDensity; + MaxAccessDensity = newMIB.MaxAccessDensity > MaxAccessDensity + ? newMIB.MaxAccessDensity + : MaxAccessDensity; + + TotalLifetimeAccessDensity += newMIB.TotalLifetimeAccessDensity; + MinLifetimeAccessDensity = + newMIB.MinLifetimeAccessDensity < MinLifetimeAccessDensity + ? newMIB.MinLifetimeAccessDensity + : MinLifetimeAccessDensity; + MaxLifetimeAccessDensity = + newMIB.MaxLifetimeAccessDensity > MaxLifetimeAccessDensity + ? newMIB.MaxLifetimeAccessDensity + : MaxLifetimeAccessDensity; + // We know newMIB was deallocated later, so just need to check if it was // allocated before last one deallocated. NumLifetimeOverlaps += newMIB.AllocTimestamp < DeallocTimestamp; diff --git a/llvm/test/Transforms/PGOProfile/Inputs/memprof.exe b/llvm/test/Transforms/PGOProfile/Inputs/memprof.exe index b6fe0fab300014..6dd5783eb5acc1 100755 Binary files a/llvm/test/Transforms/PGOProfile/Inputs/memprof.exe and b/llvm/test/Transforms/PGOProfile/Inputs/memprof.exe differ diff --git a/llvm/test/Transforms/PGOProfile/Inputs/memprof.memprofraw b/llvm/test/Transforms/PGOProfile/Inputs/memprof.memprofraw index fc638b2c510007..a5e3a517f1b32f 100644 Binary files a/llvm/test/Transforms/PGOProfile/Inputs/memprof.memprofraw and b/llvm/test/Transforms/PGOProfile/Inputs/memprof.memprofraw differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe index 7f89f135c9d5cf..4d3e4798e4791e 100755 Binary files a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe and b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw index af27be1e0a10fd..88da4a76e47f0c 100644 Binary files a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw and b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe index 9b6fd16e9a2720..82aad1948982db 100755 Binary files a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe and b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw old mode 100644 new mode 100755 index 813ee6e47045c8..f9f84e227b2207 Binary files a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw and b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe index cd14838f2e3b39..507cf982993e76 100755 Binary files a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe and b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw index bf843a9f6ad552..b6b895ff96fa9e 100644 Binary files a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw and b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe index e3a6e1f839ece3..eb1cd9b4bb7780 100755 Binary files a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe and b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe differ diff --git a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw index 7057af59034cfa..9b16c8f5dd0b53 100644 Binary files a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw and b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw differ diff --git a/llvm/test/tools/llvm-profdata/memprof-basic.test b/llvm/test/tools/llvm-profdata/memprof-basic.test index 324c7952bf0d92..a070845b5ab064 100644 --- a/llvm/test/tools/llvm-profdata/memprof-basic.test +++ b/llvm/test/tools/llvm-profdata/memprof-basic.test @@ -39,58 +39,20 @@ additional allocations which do not originate from the main binary are pruned. CHECK: MemprofProfile: CHECK-NEXT: Summary: -CHECK-NEXT: Version: 1 -CHECK-NEXT: NumSegments: 9 +CHECK-NEXT: Version: 2 +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: -CHECK-NEXT: Start: 0x200000 -CHECK-NEXT: End: 0x298000 -CHECK-NEXT: Offset: 0x0 +CHECK-NEXT: Start: 0x{{[0-9]+}} +CHECK-NEXT: End: 0x{{[0-9]+}} +CHECK-NEXT: Offset: 0x{{[0-9]+}} CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7C7C000 -CHECK-NEXT: End: 0x7FFFF7DC5000 -CHECK-NEXT: Offset: 0x26000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7E1E000 -CHECK-NEXT: End: 0x7FFFF7E30000 -CHECK-NEXT: Offset: 0x3000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7E36000 -CHECK-NEXT: End: 0x7FFFF7E38000 -CHECK-NEXT: Offset: 0x1000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7E4A000 -CHECK-NEXT: End: 0x7FFFF7EE5000 -CHECK-NEXT: Offset: 0xF000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7F83000 -CHECK-NEXT: End: 0x7FFFF7F87000 -CHECK-NEXT: Offset: 0x3000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7F92000 -CHECK-NEXT: End: 0x7FFFF7FA1000 -CHECK-NEXT: Offset: 0x7000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7FD0000 -CHECK-NEXT: End: 0x7FFFF7FD2000 -CHECK-NEXT: Offset: 0x0 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFF7FD3000 -CHECK-NEXT: End: 0x7FFFF7FF3000 -CHECK-NEXT: Offset: 0x1000 -CHECK-NEXT: Records: + +CHECK: Records: CHECK-NEXT: - CHECK-NEXT: FunctionGUID: {{[0-9]+}} CHECK-NEXT: AllocSites: @@ -110,24 +72,30 @@ CHECK-NEXT: MaxAccessCount: 2 CHECK-NEXT: TotalSize: 10 CHECK-NEXT: MinSize: 10 CHECK-NEXT: MaxSize: 10 -CHECK-NEXT: AllocTimestamp: 986 -CHECK-NEXT: DeallocTimestamp: 986 +CHECK-NEXT: AllocTimestamp: {{[0-9]+}} +CHECK-NEXT: DeallocTimestamp: {{[0-9]+}} CHECK-NEXT: TotalLifetime: 0 CHECK-NEXT: MinLifetime: 0 CHECK-NEXT: MaxLifetime: 0 -CHECK-NEXT: AllocCpuId: 56 -CHECK-NEXT: DeallocCpuId: 56 +CHECK-NEXT: AllocCpuId: {{[0-9]+}} +CHECK-NEXT: DeallocCpuId: {{[0-9]+}} CHECK-NEXT: NumMigratedCpu: 0 CHECK-NEXT: NumLifetimeOverlaps: 0 CHECK-NEXT: NumSameAllocCpu: 0 CHECK-NEXT: NumSameDeallocCpu: 0 CHECK-NEXT: DataTypeId: {{[0-9]+}} +CHECK-NEXT: TotalAccessDensity: 20 +CHECK-NEXT: MinAccessDensity: 20 +CHECK-NEXT: MaxAccessDensity: 20 +CHECK-NEXT: TotalLifetimeAccessDensity: 20000 +CHECK-NEXT: MinLifetimeAccessDensity: 20000 +CHECK-NEXT: MaxLifetimeAccessDensity: 20000 CHECK-NEXT: - CHECK-NEXT: Callstack: CHECK-NEXT: - CHECK-NEXT: Function: {{[0-9]+}} CHECK-NEXT: SymbolName: main -CHECK-NEXT: LineOffset: 5 +CHECK-NEXT: LineOffset: 4 CHECK-NEXT: Column: 15 CHECK-NEXT: Inline: 0 CHECK-NEXT: MemInfoBlock: @@ -138,15 +106,21 @@ CHECK-NEXT: MaxAccessCount: 2 CHECK-NEXT: TotalSize: 10 CHECK-NEXT: MinSize: 10 CHECK-NEXT: MaxSize: 10 -CHECK-NEXT: AllocTimestamp: 987 -CHECK-NEXT: DeallocTimestamp: 987 +CHECK-NEXT: AllocTimestamp: {{[0-9]+}} +CHECK-NEXT: DeallocTimestamp: {{[0-9]+}} CHECK-NEXT: TotalLifetime: 0 CHECK-NEXT: MinLifetime: 0 CHECK-NEXT: MaxLifetime: 0 -CHECK-NEXT: AllocCpuId: 56 -CHECK-NEXT: DeallocCpuId: 56 +CHECK-NEXT: AllocCpuId: {{[0-9]+}} +CHECK-NEXT: DeallocCpuId: {{[0-9]+}} CHECK-NEXT: NumMigratedCpu: 0 CHECK-NEXT: NumLifetimeOverlaps: 0 CHECK-NEXT: NumSameAllocCpu: 0 CHECK-NEXT: NumSameDeallocCpu: 0 CHECK-NEXT: DataTypeId: {{[0-9]+}} +CHECK-NEXT: TotalAccessDensity: 20 +CHECK-NEXT: MinAccessDensity: 20 +CHECK-NEXT: MaxAccessDensity: 20 +CHECK-NEXT: TotalLifetimeAccessDensity: 20000 +CHECK-NEXT: MinLifetimeAccessDensity: 20000 +CHECK-NEXT: MaxLifetimeAccessDensity: 20000 diff --git a/llvm/test/tools/llvm-profdata/memprof-inline.test b/llvm/test/tools/llvm-profdata/memprof-inline.test index 88c56a97b44d17..87eaa8364d3082 100644 --- a/llvm/test/tools/llvm-profdata/memprof-inline.test +++ b/llvm/test/tools/llvm-profdata/memprof-inline.test @@ -40,58 +40,20 @@ RUN: llvm-profdata show --memory %p/Inputs/inline.memprofraw --profiled-binary % CHECK: MemprofProfile: CHECK-NEXT: Summary: -CHECK-NEXT: Version: 1 -CHECK-NEXT: NumSegments: 9 +CHECK-NEXT: Version: 2 +CHECK-NEXT: NumSegments: {{[0-9]+}} CHECK-NEXT: NumMibInfo: 2 CHECK-NEXT: NumAllocFunctions: 2 CHECK-NEXT: NumStackOffsets: 1 CHECK-NEXT: Segments: CHECK-NEXT: - CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x200000 -CHECK-NEXT: End: 0x29B000 -CHECK-NEXT: Offset: 0x0 +CHECK-NEXT: Start: 0x{{[0-9]+}} +CHECK-NEXT: End: 0x{{[0-9]+}} +CHECK-NEXT: Offset: 0x{{[0-9]+}} CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7F5871485000 -CHECK-NEXT: End: 0x7F58715CD000 -CHECK-NEXT: Offset: 0x26000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7F587162D000 -CHECK-NEXT: End: 0x7F587163F000 -CHECK-NEXT: Offset: 0x3000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7F5871646000 -CHECK-NEXT: End: 0x7F5871648000 -CHECK-NEXT: Offset: 0x2000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7F587165A000 -CHECK-NEXT: End: 0x7F58716F4000 -CHECK-NEXT: Offset: 0xF000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7F5871791000 -CHECK-NEXT: End: 0x7F5871795000 -CHECK-NEXT: Offset: 0x3000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7F58717A0000 -CHECK-NEXT: End: 0x7F58717AF000 -CHECK-NEXT: Offset: 0x7000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7F58717D6000 -CHECK-NEXT: End: 0x7F58717FA000 -CHECK-NEXT: Offset: 0x1000 -CHECK-NEXT: - -CHECK-NEXT: BuildId: -CHECK-NEXT: Start: 0x7FFFC77BD000 -CHECK-NEXT: End: 0x7FFFC77BF000 -CHECK-NEXT: Offset: 0x0 -CHECK-NEXT: Records: + +CHECK: Records: CHECK-NEXT: - CHECK-NEXT: FunctionGUID: 15505678318020221912 CHECK-NEXT: AllocSites: @@ -129,18 +91,24 @@ CHECK-NEXT: MaxAccessCount: 1 CHECK-NEXT: TotalSize: 1 CHECK-NEXT: MinSize: 1 CHECK-NEXT: MaxSize: 1 -CHECK-NEXT: AllocTimestamp: 894 -CHECK-NEXT: DeallocTimestamp: 894 +CHECK-NEXT: AllocTimestamp: {{[0-9]+}} +CHECK-NEXT: DeallocTimestamp: {{[0-9]+}} CHECK-NEXT: TotalLifetime: 0 CHECK-NEXT: MinLifetime: 0 CHECK-NEXT: MaxLifetime: 0 -CHECK-NEXT: AllocCpuId: 23 -CHECK-NEXT: DeallocCpuId: 23 +CHECK-NEXT: AllocCpuId: {{[0-9]+}} +CHECK-NEXT: DeallocCpuId: {{[0-9]+}} CHECK-NEXT: NumMigratedCpu: 0 CHECK-NEXT: NumLifetimeOverlaps: 0 CHECK-NEXT: NumSameAllocCpu: 0 CHECK-NEXT: NumSameDeallocCpu: 0 CHECK-NEXT: DataTypeId: {{[0-9]+}} +CHECK-NEXT: TotalAccessDensity: 100 +CHECK-NEXT: MinAccessDensity: 100 +CHECK-NEXT: MaxAccessDensity: 100 +CHECK-NEXT: TotalLifetimeAccessDensity: 100000 +CHECK-NEXT: MinLifetimeAccessDensity: 100000 +CHECK-NEXT: MaxLifetimeAccessDensity: 100000 CHECK-NEXT: - CHECK-NEXT: FunctionGUID: 6699318081062747564 CHECK-NEXT: AllocSites: @@ -178,18 +146,24 @@ CHECK-NEXT: MaxAccessCount: 1 CHECK-NEXT: TotalSize: 1 CHECK-NEXT: MinSize: 1 CHECK-NEXT: MaxSize: 1 -CHECK-NEXT: AllocTimestamp: 894 -CHECK-NEXT: DeallocTimestamp: 894 +CHECK-NEXT: AllocTimestamp: {{[0-9]+}} +CHECK-NEXT: DeallocTimestamp: {{[0-9]+}} CHECK-NEXT: TotalLifetime: 0 CHECK-NEXT: MinLifetime: 0 CHECK-NEXT: MaxLifetime: 0 -CHECK-NEXT: AllocCpuId: 23 -CHECK-NEXT: DeallocCpuId: 23 +CHECK-NEXT: AllocCpuId: {{[0-9]+}} +CHECK-NEXT: DeallocCpuId: {{[0-9]+}} CHECK-NEXT: NumMigratedCpu: 0 CHECK-NEXT: NumLifetimeOverlaps: 0 CHECK-NEXT: NumSameAllocCpu: 0 CHECK-NEXT: NumSameDeallocCpu: 0 CHECK-NEXT: DataTypeId: {{[0-9]+}} +CHECK-NEXT: TotalAccessDensity: 100 +CHECK-NEXT: MinAccessDensity: 100 +CHECK-NEXT: MaxAccessDensity: 100 +CHECK-NEXT: TotalLifetimeAccessDensity: 100000 +CHECK-NEXT: MinLifetimeAccessDensity: 100000 +CHECK-NEXT: MaxLifetimeAccessDensity: 100000 CHECK-NEXT: CallSites: CHECK-NEXT: - CHECK-NEXT: - diff --git a/llvm/test/tools/llvm-profdata/memprof-multi.test b/llvm/test/tools/llvm-profdata/memprof-multi.test index 9140d4dd887dcc..cb5b7dfaeb0a7c 100644 --- a/llvm/test/tools/llvm-profdata/memprof-multi.test +++ b/llvm/test/tools/llvm-profdata/memprof-multi.test @@ -40,8 +40,8 @@ We expect 2 MIB entries, 1 each for the malloc calls in the program. CHECK: MemprofProfile: CHECK-NEXT: Summary: -CHECK-NEXT: Version: 1 -CHECK-NEXT: NumSegments: 9 +CHECK-NEXT: Version: 2 +CHECK-NEXT: NumSegments: {{[0-9]+}} CHECK-NEXT: NumMibInfo: 2 CHECK-NEXT: NumAllocFunctions: 1 CHECK-NEXT: NumStackOffsets: 2