diff options
author | Mingming Liu <mingmingl@google.com> | 2025-05-27 16:32:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-27 16:32:35 -0700 |
commit | 2186c95a6f59d1b87c8becea2af6e437f02bf7cb (patch) | |
tree | 8ba67d6a72267842ba12d02b6dd8a9b538c79255 /llvm/lib/ProfileData/SampleProfWriter.cpp | |
parent | e210dc8cf4f9e919ef02b04d27e4dacb0faf656e (diff) | |
download | llvm-2186c95a6f59d1b87c8becea2af6e437f02bf7cb.zip llvm-2186c95a6f59d1b87c8becea2af6e437f02bf7cb.tar.gz llvm-2186c95a6f59d1b87c8becea2af6e437f02bf7cb.tar.bz2 |
[NFCI]Add SampleRecord::serialize and LineLocation::serialize to simplify FunctionSamples serialization (#141669)
Diffstat (limited to 'llvm/lib/ProfileData/SampleProfWriter.cpp')
-rw-r--r-- | llvm/lib/ProfileData/SampleProfWriter.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/llvm/lib/ProfileData/SampleProfWriter.cpp b/llvm/lib/ProfileData/SampleProfWriter.cpp index 8b164f2..71d2f52 100644 --- a/llvm/lib/ProfileData/SampleProfWriter.cpp +++ b/llvm/lib/ProfileData/SampleProfWriter.cpp @@ -827,17 +827,8 @@ std::error_code SampleProfileWriterBinary::writeBody(const FunctionSamples &S) { for (const auto &I : S.getBodySamples()) { LineLocation Loc = I.first; const SampleRecord &Sample = I.second; - encodeULEB128(Loc.LineOffset, OS); - encodeULEB128(Loc.Discriminator, OS); - encodeULEB128(Sample.getSamples(), OS); - encodeULEB128(Sample.getCallTargets().size(), OS); - for (const auto &J : Sample.getSortedCallTargets()) { - FunctionId Callee = J.first; - uint64_t CalleeSamples = J.second; - if (std::error_code EC = writeNameIdx(Callee)) - return EC; - encodeULEB128(CalleeSamples, OS); - } + Loc.serialize(OS); + Sample.serialize(OS, getNameTable()); } // Recursively emit all the callsite samples. @@ -849,8 +840,7 @@ std::error_code SampleProfileWriterBinary::writeBody(const FunctionSamples &S) { for (const auto &FS : J.second) { LineLocation Loc = J.first; const FunctionSamples &CalleeSamples = FS.second; - encodeULEB128(Loc.LineOffset, OS); - encodeULEB128(Loc.Discriminator, OS); + Loc.serialize(OS); if (std::error_code EC = writeBody(CalleeSamples)) return EC; } |