[PATCH] D116783: [memprof] Print out the summary in YAML format.
Snehasish Kumar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 6 17:43:46 PST 2022
snehasish created this revision.
snehasish added reviewers: tejohnson, davidxl.
Herald added a subscriber: hiraditya.
snehasish requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Print out the profile summary in YAML format to make it easier to for
tools and tests to read in the contents of the raw profile.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D116783
Files:
llvm/lib/ProfileData/RawMemProfReader.cpp
llvm/test/tools/llvm-profdata/memprof-basic.test
llvm/test/tools/llvm-profdata/memprof-multi.test
llvm/tools/llvm-profdata/llvm-profdata.cpp
Index: llvm/tools/llvm-profdata/llvm-profdata.cpp
===================================================================
--- llvm/tools/llvm-profdata/llvm-profdata.cpp
+++ llvm/tools/llvm-profdata/llvm-profdata.cpp
@@ -2480,6 +2480,8 @@
std::unique_ptr<llvm::memprof::RawMemProfReader> Reader(
ReaderOr.get().release());
+
+ OS << "memprof_profile:\n";
Reader->printSummaries(OS);
return 0;
}
Index: llvm/test/tools/llvm-profdata/memprof-multi.test
===================================================================
--- llvm/test/tools/llvm-profdata/memprof-multi.test
+++ llvm/test/tools/llvm-profdata/memprof-multi.test
@@ -36,15 +36,18 @@
We expect 2 MIB entries, 1 each for the malloc calls in the program. Unlike the
memprof-basic.test we do not see any allocation from glibc.
-CHECK: MemProf Profile 1
-CHECK: Version: 1
-CHECK: TotalSizeBytes: 864
-CHECK: NumSegments: 9
-CHECK: NumMIBInfo: 2
-CHECK: NumStackOffsets: 2
-CHECK: MemProf Profile 2
-CHECK: Version: 1
-CHECK: TotalSizeBytes: 864
-CHECK: NumSegments: 9
-CHECK: NumMIBInfo: 2
-CHECK: NumStackOffsets: 2
+CHECK: memprof_profile:
+CHECK-NEXT: -
+CHECK-NEXT: header:
+CHECK-NEXT: version: 1
+CHECK-NEXT: total_size_bytes: 864
+CHECK-NEXT: num_segments: 9
+CHECK-NEXT: num_mib_info: 2
+CHECK-NEXT: num_stack_offsets: 2
+CHECK-NEXT: -
+CHECK-NEXT: header:
+CHECK-NEXT: version: 1
+CHECK-NEXT: total_size_bytes: 864
+CHECK-NEXT: num_segments: 9
+CHECK-NEXT: num_mib_info: 2
+CHECK-NEXT: num_stack_offsets: 2
Index: llvm/test/tools/llvm-profdata/memprof-basic.test
===================================================================
--- llvm/test/tools/llvm-profdata/memprof-basic.test
+++ llvm/test/tools/llvm-profdata/memprof-basic.test
@@ -34,9 +34,11 @@
We expect 3 MIB entries, 1 each for the malloc calls in the program and one
additional entry from a realloc in glibc/libio/vasprintf.c.
-CHECK: MemProf Profile 1
-CHECK: Version: 1
-CHECK: TotalSizeBytes: 1016
-CHECK: NumSegments: 9
-CHECK: NumMIBInfo: 3
-CHECK: NumStackOffsets: 3
+CHECK: memprof_profile:
+CHECK-NEXT: -
+CHECK-NEXT: header:
+CHECK-NEXT: version: 1
+CHECK-NEXT: total_size_bytes: 1016
+CHECK-NEXT: num_segments: 9
+CHECK-NEXT: num_mib_info: 3
+CHECK-NEXT: num_stack_offsets: 3
Index: llvm/lib/ProfileData/RawMemProfReader.cpp
===================================================================
--- llvm/lib/ProfileData/RawMemProfReader.cpp
+++ llvm/lib/ProfileData/RawMemProfReader.cpp
@@ -99,16 +99,16 @@
}
void RawMemProfReader::printSummaries(raw_ostream &OS) const {
- int Count = 0;
const char *Next = DataBuffer->getBufferStart();
while (Next < DataBuffer->getBufferEnd()) {
auto Summary = computeSummary(Next);
- OS << "MemProf Profile " << ++Count << "\n";
- OS << " Version: " << Summary.Version << "\n";
- OS << " TotalSizeBytes: " << Summary.TotalSizeBytes << "\n";
- OS << " NumSegments: " << Summary.NumSegments << "\n";
- OS << " NumMIBInfo: " << Summary.NumMIBInfo << "\n";
- OS << " NumStackOffsets: " << Summary.NumStackOffsets << "\n";
+ OS << " -\n";
+ OS << " header:\n";
+ OS << " version: " << Summary.Version << "\n";
+ OS << " total_size_bytes: " << Summary.TotalSizeBytes << "\n";
+ OS << " num_segments: " << Summary.NumSegments << "\n";
+ OS << " num_mib_info: " << Summary.NumMIBInfo << "\n";
+ OS << " num_stack_offsets: " << Summary.NumStackOffsets << "\n";
// TODO: Print the build ids once we can record them using the
// sanitizer_procmaps library for linux.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116783.398022.patch
Type: text/x-patch
Size: 3647 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220107/53fbddc0/attachment-0001.bin>
More information about the llvm-commits
mailing list