diff options
author | Kazu Hirata <kazu@google.com> | 2024-11-20 08:36:55 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-20 08:36:55 -0800 |
commit | 4b3b74dffa0aa76169cb67c3cb7ccf152c2c03aa (patch) | |
tree | 27b7568ece533babbb9bfba6ef7068a6afa510bc | |
parent | 4acba0697e7d8068927753f3bdabad478df91dc4 (diff) | |
download | llvm-4b3b74dffa0aa76169cb67c3cb7ccf152c2c03aa.zip llvm-4b3b74dffa0aa76169cb67c3cb7ccf152c2c03aa.tar.gz llvm-4b3b74dffa0aa76169cb67c3cb7ccf152c2c03aa.tar.bz2 |
[memprof] Use InstrProfWriter::addMemProfData in a unit test (NFC) (#116921)
This patch uses InstrProfWriter::addMemProfData to add the complete
MemProf profile to the writer context.
-rw-r--r-- | llvm/unittests/Transforms/Instrumentation/MemProfUseTest.cpp | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/llvm/unittests/Transforms/Instrumentation/MemProfUseTest.cpp b/llvm/unittests/Transforms/Instrumentation/MemProfUseTest.cpp index 2fa8610..fb87d64 100644 --- a/llvm/unittests/Transforms/Instrumentation/MemProfUseTest.cpp +++ b/llvm/unittests/Transforms/Instrumentation/MemProfUseTest.cpp @@ -434,31 +434,30 @@ attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "t ASSERT_THAT_ERROR(Writer.mergeProfileKind(InstrProfKind::MemProf), Succeeded()); - const std::pair<memprof::FrameId, memprof::Frame> Frames[] = { - // The call sites within foo. - {0, {GUIDFoo, 1, 8, false}}, - {1, {GUIDFoo, 2, 3, false}}, - {2, {GUIDFoo, 3, 3, false}}, - // Line/column numbers below don't matter. - {3, {GUIDBar, 9, 9, false}}, - {4, {GUIDZzz, 9, 9, false}}, - {5, {GUIDBaz, 9, 9, false}}}; - for (const auto &[FrameId, Frame] : Frames) - Writer.addMemProfFrame(FrameId, Frame, Err); - - const std::pair<memprof::CallStackId, SmallVector<memprof::FrameId>> - CallStacks[] = { - {0x111, {3, 0}}, // bar called by foo - {0x222, {4, 1}}, // zzz called by foo - {0x333, {5, 2}} // baz called by foo - }; - for (const auto &[CSId, CallStack] : CallStacks) - Writer.addMemProfCallStack(CSId, CallStack, Err); - const IndexedMemProfRecord IndexedMR = makeRecordV2( /*AllocFrames=*/{0x111, 0x222, 0x333}, /*CallSiteFrames=*/{}, MIB, memprof::getHotColdSchema()); - Writer.addMemProfRecord(/*Id=*/0x9999, IndexedMR); + + memprof::IndexedMemProfData MemProfData; + // The call sites within foo. + MemProfData.Frames.try_emplace(0, GUIDFoo, 1, 8, false); + MemProfData.Frames.try_emplace(1, GUIDFoo, 2, 3, false); + MemProfData.Frames.try_emplace(2, GUIDFoo, 3, 3, false); + // Line/column numbers below don't matter. + MemProfData.Frames.try_emplace(3, GUIDBar, 9, 9, false); + MemProfData.Frames.try_emplace(4, GUIDZzz, 9, 9, false); + MemProfData.Frames.try_emplace(5, GUIDBaz, 9, 9, false); + MemProfData.CallStacks.try_emplace( + 0x111, + std::initializer_list<memprof::FrameId>{3, 0}); // bar called by foo + MemProfData.CallStacks.try_emplace( + 0x222, + std::initializer_list<memprof::FrameId>{4, 1}); // zzz called by foo + MemProfData.CallStacks.try_emplace( + 0x333, + std::initializer_list<memprof::FrameId>{5, 2}); // baz called by foo + MemProfData.Records.try_emplace(0x9999, IndexedMR); + Writer.addMemProfData(MemProfData, Err); auto Profile = Writer.writeBuffer(); |