aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/SampleProfWriter.cpp
diff options
context:
space:
mode:
authorMingming Liu <mingmingl@google.com>2025-05-27 16:32:35 -0700
committerGitHub <noreply@github.com>2025-05-27 16:32:35 -0700
commit2186c95a6f59d1b87c8becea2af6e437f02bf7cb (patch)
tree8ba67d6a72267842ba12d02b6dd8a9b538c79255 /llvm/lib/ProfileData/SampleProfWriter.cpp
parente210dc8cf4f9e919ef02b04d27e4dacb0faf656e (diff)
downloadllvm-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.cpp16
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;
}