[llvm] 61c75eb - [memprof] Initialize MemInfoBlock data.

Snehasish Kumar via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 22 14:36:03 PDT 2022


Author: Snehasish Kumar
Date: 2022-03-22T14:35:57-07:00
New Revision: 61c75eb6372786e5bc4025bd9023376fded76bf2

URL: https://github.com/llvm/llvm-project/commit/61c75eb6372786e5bc4025bd9023376fded76bf2
DIFF: https://github.com/llvm/llvm-project/commit/61c75eb6372786e5bc4025bd9023376fded76bf2.diff

LOG: [memprof] Initialize MemInfoBlock data.

This patch updates the existing default no-arg constructor for
MemInfoBlock to explicitly initialize all members. Also add missing
DataTypeId initialization to the other constructor. These issues were
exposed by msan on patch D121179. With this patch D121179 builds cleanly
on msan.

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D122260

Added: 
    

Modified: 
    compiler-rt/include/profile/MemProfData.inc
    llvm/include/llvm/ProfileData/MemProfData.inc

Removed: 
    


################################################################################
diff  --git a/compiler-rt/include/profile/MemProfData.inc b/compiler-rt/include/profile/MemProfData.inc
index 38698be9ea0ec..6433cef84865c 100644
--- a/compiler-rt/include/profile/MemProfData.inc
+++ b/compiler-rt/include/profile/MemProfData.inc
@@ -106,19 +106,29 @@ bool operator==(const MemInfoBlock& Other) const {
   return IsEqual;
 }
 
-MemInfoBlock() : AllocCount(0) {}
-
-MemInfoBlock(uint32_t size, uint64_t access_count, uint32_t alloc_timestamp,
-             uint32_t dealloc_timestamp, uint32_t alloc_cpu, uint32_t dealloc_cpu)
-    : AllocCount(1), TotalAccessCount(access_count),
-      MinAccessCount(access_count), MaxAccessCount(access_count),
-      TotalSize(size), MinSize(size), MaxSize(size),
-      AllocTimestamp(alloc_timestamp), DeallocTimestamp(dealloc_timestamp),
-      TotalLifetime(dealloc_timestamp - alloc_timestamp),
-      MinLifetime(TotalLifetime), MaxLifetime(TotalLifetime),
-      AllocCpuId(alloc_cpu), DeallocCpuId(dealloc_cpu),
-      NumLifetimeOverlaps(0), NumSameAllocCpu(0),
-      NumSameDeallocCpu(0) {
+MemInfoBlock() {
+#define MIBEntryDef(NameTag, Name, Type) Name = Type();
+#include "MIBEntryDef.inc"
+#undef MIBEntryDef
+}
+
+MemInfoBlock(uint32_t Size, uint64_t AccessCount, uint32_t AllocTs,
+             uint32_t DeallocTs, uint32_t AllocCpu, uint32_t DeallocCpu)
+    : MemInfoBlock() {
+  AllocCount = 1U;
+  TotalAccessCount = AccessCount;
+  MinAccessCount = AccessCount;
+  MaxAccessCount = AccessCount;
+  TotalSize = Size;
+  MinSize = Size;
+  MaxSize = Size;
+  AllocTimestamp = AllocTs;
+  DeallocTimestamp = DeallocTs;
+  TotalLifetime = DeallocTimestamp - AllocTimestamp;
+  MinLifetime = TotalLifetime;
+  MaxLifetime = TotalLifetime;
+  AllocCpuId = AllocCpu;
+  DeallocCpuId = DeallocCpu;
   NumMigratedCpu = AllocCpuId != DeallocCpuId;
 }
 

diff  --git a/llvm/include/llvm/ProfileData/MemProfData.inc b/llvm/include/llvm/ProfileData/MemProfData.inc
index 38698be9ea0ec..6433cef84865c 100644
--- a/llvm/include/llvm/ProfileData/MemProfData.inc
+++ b/llvm/include/llvm/ProfileData/MemProfData.inc
@@ -106,19 +106,29 @@ bool operator==(const MemInfoBlock& Other) const {
   return IsEqual;
 }
 
-MemInfoBlock() : AllocCount(0) {}
-
-MemInfoBlock(uint32_t size, uint64_t access_count, uint32_t alloc_timestamp,
-             uint32_t dealloc_timestamp, uint32_t alloc_cpu, uint32_t dealloc_cpu)
-    : AllocCount(1), TotalAccessCount(access_count),
-      MinAccessCount(access_count), MaxAccessCount(access_count),
-      TotalSize(size), MinSize(size), MaxSize(size),
-      AllocTimestamp(alloc_timestamp), DeallocTimestamp(dealloc_timestamp),
-      TotalLifetime(dealloc_timestamp - alloc_timestamp),
-      MinLifetime(TotalLifetime), MaxLifetime(TotalLifetime),
-      AllocCpuId(alloc_cpu), DeallocCpuId(dealloc_cpu),
-      NumLifetimeOverlaps(0), NumSameAllocCpu(0),
-      NumSameDeallocCpu(0) {
+MemInfoBlock() {
+#define MIBEntryDef(NameTag, Name, Type) Name = Type();
+#include "MIBEntryDef.inc"
+#undef MIBEntryDef
+}
+
+MemInfoBlock(uint32_t Size, uint64_t AccessCount, uint32_t AllocTs,
+             uint32_t DeallocTs, uint32_t AllocCpu, uint32_t DeallocCpu)
+    : MemInfoBlock() {
+  AllocCount = 1U;
+  TotalAccessCount = AccessCount;
+  MinAccessCount = AccessCount;
+  MaxAccessCount = AccessCount;
+  TotalSize = Size;
+  MinSize = Size;
+  MaxSize = Size;
+  AllocTimestamp = AllocTs;
+  DeallocTimestamp = DeallocTs;
+  TotalLifetime = DeallocTimestamp - AllocTimestamp;
+  MinLifetime = TotalLifetime;
+  MaxLifetime = TotalLifetime;
+  AllocCpuId = AllocCpu;
+  DeallocCpuId = DeallocCpu;
   NumMigratedCpu = AllocCpuId != DeallocCpuId;
 }
 


        


More information about the llvm-commits mailing list