[llvm] [memprof] Use IndexedMemProfData (NFC) (PR #119049)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 6 17:17:53 PST 2024
https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/119049
This patch replaces FrameIdMap and CallStackIdMap with
IndexedMemProfData, which comes with recently introduced methods like
addFrame and addCallStack.
>From 868cd0f91b24e0d80fc2c396ff4fdadbdba25eaa Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Wed, 4 Dec 2024 20:51:06 -0800
Subject: [PATCH] [memprof] Use IndexedMemProfData (NFC)
This patch replaces FrameIdMap and CallStackIdMap with
IndexedMemProfData, which comes with recently introduced methods like
addFrame and addCallStack.
---
llvm/unittests/ProfileData/MemProfTest.cpp | 27 +++++++++++-----------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/llvm/unittests/ProfileData/MemProfTest.cpp b/llvm/unittests/ProfileData/MemProfTest.cpp
index 74a6acf9e9a82f..fbf74018f8e05d 100644
--- a/llvm/unittests/ProfileData/MemProfTest.cpp
+++ b/llvm/unittests/ProfileData/MemProfTest.cpp
@@ -36,6 +36,7 @@ using ::llvm::memprof::Frame;
using ::llvm::memprof::FrameId;
using ::llvm::memprof::hashCallStack;
using ::llvm::memprof::IndexedAllocationInfo;
+using ::llvm::memprof::IndexedMemProfData;
using ::llvm::memprof::IndexedMemProfRecord;
using ::llvm::memprof::MemInfoBlock;
using ::llvm::memprof::MemProfReader;
@@ -500,25 +501,24 @@ TEST(MemProf, IndexedMemProfRecordToMemProfRecord) {
// Verify that MemProfRecord can be constructed from IndexedMemProfRecord with
// CallStackIds only.
- llvm::DenseMap<FrameId, Frame> FrameIdMap;
+ IndexedMemProfData MemProfData;
Frame F1(1, 0, 0, false);
Frame F2(2, 0, 0, false);
Frame F3(3, 0, 0, false);
Frame F4(4, 0, 0, false);
- FrameIdMap.insert({F1.hash(), F1});
- FrameIdMap.insert({F2.hash(), F2});
- FrameIdMap.insert({F3.hash(), F3});
- FrameIdMap.insert({F4.hash(), F4});
+ MemProfData.addFrame(F1);
+ MemProfData.addFrame(F2);
+ MemProfData.addFrame(F3);
+ MemProfData.addFrame(F4);
- llvm::DenseMap<CallStackId, llvm::SmallVector<FrameId>> CallStackIdMap;
llvm::SmallVector<FrameId> CS1 = {F1.hash(), F2.hash()};
llvm::SmallVector<FrameId> CS2 = {F1.hash(), F3.hash()};
llvm::SmallVector<FrameId> CS3 = {F2.hash(), F3.hash()};
llvm::SmallVector<FrameId> CS4 = {F2.hash(), F4.hash()};
- CallStackIdMap.insert({hashCallStack(CS1), CS1});
- CallStackIdMap.insert({hashCallStack(CS2), CS2});
- CallStackIdMap.insert({hashCallStack(CS3), CS3});
- CallStackIdMap.insert({hashCallStack(CS4), CS4});
+ MemProfData.addCallStack(CS1);
+ MemProfData.addCallStack(CS2);
+ MemProfData.addCallStack(CS3);
+ MemProfData.addCallStack(CS4);
IndexedMemProfRecord IndexedRecord;
IndexedAllocationInfo AI;
@@ -529,9 +529,10 @@ TEST(MemProf, IndexedMemProfRecordToMemProfRecord) {
IndexedRecord.CallSiteIds.push_back(hashCallStack(CS3));
IndexedRecord.CallSiteIds.push_back(hashCallStack(CS4));
- llvm::memprof::FrameIdConverter<decltype(FrameIdMap)> FrameIdConv(FrameIdMap);
- llvm::memprof::CallStackIdConverter<decltype(CallStackIdMap)> CSIdConv(
- CallStackIdMap, FrameIdConv);
+ llvm::memprof::FrameIdConverter<decltype(MemProfData.Frames)> FrameIdConv(
+ MemProfData.Frames);
+ llvm::memprof::CallStackIdConverter<decltype(MemProfData.CallStacks)>
+ CSIdConv(MemProfData.CallStacks, FrameIdConv);
MemProfRecord Record = IndexedRecord.toMemProfRecord(CSIdConv);
More information about the llvm-commits
mailing list