tejohnson updated this revision to Diff 488766.
tejohnson added a comment.

Address comments (version change necessitated updating the tests)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141558/new/

https://reviews.llvm.org/D141558

Files:
  clang/test/CodeGen/Inputs/memprof.exe
  clang/test/CodeGen/Inputs/memprof.memprofraw
  compiler-rt/include/profile/MIBEntryDef.inc
  compiler-rt/include/profile/MemProfData.inc
  llvm/include/llvm/ProfileData/MIBEntryDef.inc
  llvm/include/llvm/ProfileData/MemProfData.inc
  llvm/test/Transforms/PGOProfile/Inputs/memprof.exe
  llvm/test/Transforms/PGOProfile/Inputs/memprof.memprofraw
  llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe
  llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw
  llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe
  llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw
  llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe
  llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw
  llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe
  llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw
  llvm/test/tools/llvm-profdata/memprof-basic.test
  llvm/test/tools/llvm-profdata/memprof-inline.test
  llvm/test/tools/llvm-profdata/memprof-multi.test

Index: llvm/test/tools/llvm-profdata/memprof-multi.test
===================================================================
--- llvm/test/tools/llvm-profdata/memprof-multi.test
+++ llvm/test/tools/llvm-profdata/memprof-multi.test
@@ -40,8 +40,8 @@
 
 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
Index: llvm/test/tools/llvm-profdata/memprof-inline.test
===================================================================
--- llvm/test/tools/llvm-profdata/memprof-inline.test
+++ llvm/test/tools/llvm-profdata/memprof-inline.test
@@ -40,58 +40,20 @@
 
 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: <None>
-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: <None>
-CHECK-NEXT:    Start: 0x7F5871485000
-CHECK-NEXT:    End: 0x7F58715CD000
-CHECK-NEXT:    Offset: 0x26000
-CHECK-NEXT:  -
-CHECK-NEXT:    BuildId: <None>
-CHECK-NEXT:    Start: 0x7F587162D000
-CHECK-NEXT:    End: 0x7F587163F000
-CHECK-NEXT:    Offset: 0x3000
-CHECK-NEXT:  -
-CHECK-NEXT:    BuildId: <None>
-CHECK-NEXT:    Start: 0x7F5871646000
-CHECK-NEXT:    End: 0x7F5871648000
-CHECK-NEXT:    Offset: 0x2000
-CHECK-NEXT:  -
-CHECK-NEXT:    BuildId: <None>
-CHECK-NEXT:    Start: 0x7F587165A000
-CHECK-NEXT:    End: 0x7F58716F4000
-CHECK-NEXT:    Offset: 0xF000
-CHECK-NEXT:  -
-CHECK-NEXT:    BuildId: <None>
-CHECK-NEXT:    Start: 0x7F5871791000
-CHECK-NEXT:    End: 0x7F5871795000
-CHECK-NEXT:    Offset: 0x3000
-CHECK-NEXT:  -
-CHECK-NEXT:    BuildId: <None>
-CHECK-NEXT:    Start: 0x7F58717A0000
-CHECK-NEXT:    End: 0x7F58717AF000
-CHECK-NEXT:    Offset: 0x7000
-CHECK-NEXT:  -
-CHECK-NEXT:    BuildId: <None>
-CHECK-NEXT:    Start: 0x7F58717D6000
-CHECK-NEXT:    End: 0x7F58717FA000
-CHECK-NEXT:    Offset: 0x1000
-CHECK-NEXT:  -
-CHECK-NEXT:    BuildId: <None>
-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:        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:        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:      -
Index: llvm/test/tools/llvm-profdata/memprof-basic.test
===================================================================
--- llvm/test/tools/llvm-profdata/memprof-basic.test
+++ llvm/test/tools/llvm-profdata/memprof-basic.test
@@ -39,58 +39,20 @@
 
 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: <None>
-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: <None>
-CHECK-NEXT:     Start: 0x7FFFF7C7C000
-CHECK-NEXT:     End: 0x7FFFF7DC5000
-CHECK-NEXT:     Offset: 0x26000
-CHECK-NEXT:   -
-CHECK-NEXT:     BuildId: <None>
-CHECK-NEXT:     Start: 0x7FFFF7E1E000
-CHECK-NEXT:     End: 0x7FFFF7E30000
-CHECK-NEXT:     Offset: 0x3000
-CHECK-NEXT:   -
-CHECK-NEXT:     BuildId: <None>
-CHECK-NEXT:     Start: 0x7FFFF7E36000
-CHECK-NEXT:     End: 0x7FFFF7E38000
-CHECK-NEXT:     Offset: 0x1000
-CHECK-NEXT:   -
-CHECK-NEXT:     BuildId: <None>
-CHECK-NEXT:     Start: 0x7FFFF7E4A000
-CHECK-NEXT:     End: 0x7FFFF7EE5000
-CHECK-NEXT:     Offset: 0xF000
-CHECK-NEXT:   -
-CHECK-NEXT:     BuildId: <None>
-CHECK-NEXT:     Start: 0x7FFFF7F83000
-CHECK-NEXT:     End: 0x7FFFF7F87000
-CHECK-NEXT:     Offset: 0x3000
-CHECK-NEXT:   -
-CHECK-NEXT:     BuildId: <None>
-CHECK-NEXT:     Start: 0x7FFFF7F92000
-CHECK-NEXT:     End: 0x7FFFF7FA1000
-CHECK-NEXT:     Offset: 0x7000
-CHECK-NEXT:   -
-CHECK-NEXT:     BuildId: <None>
-CHECK-NEXT:     Start: 0x7FFFF7FD0000
-CHECK-NEXT:     End: 0x7FFFF7FD2000
-CHECK-NEXT:     Offset: 0x0
-CHECK-NEXT:   -
-CHECK-NEXT:     BuildId: <None>
-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:         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:         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
Index: llvm/include/llvm/ProfileData/MemProfData.inc
===================================================================
--- llvm/include/llvm/ProfileData/MemProfData.inc
+++ 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 @@
   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 @@
   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;
Index: llvm/include/llvm/ProfileData/MIBEntryDef.inc
===================================================================
--- llvm/include/llvm/ProfileData/MIBEntryDef.inc
+++ llvm/include/llvm/ProfileData/MIBEntryDef.inc
@@ -45,3 +45,9 @@
 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)
Index: compiler-rt/include/profile/MemProfData.inc
===================================================================
--- compiler-rt/include/profile/MemProfData.inc
+++ 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 @@
   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 @@
   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;
Index: compiler-rt/include/profile/MIBEntryDef.inc
===================================================================
--- compiler-rt/include/profile/MIBEntryDef.inc
+++ compiler-rt/include/profile/MIBEntryDef.inc
@@ -45,3 +45,9 @@
 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)
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to