diff --git a/llvm/lib/ProfileData/RawMemProfReader.cpp b/llvm/lib/ProfileData/RawMemProfReader.cpp --- a/llvm/lib/ProfileData/RawMemProfReader.cpp +++ b/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. diff --git a/llvm/test/tools/llvm-profdata/memprof-basic.test b/llvm/test/tools/llvm-profdata/memprof-basic.test --- a/llvm/test/tools/llvm-profdata/memprof-basic.test +++ b/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 diff --git a/llvm/test/tools/llvm-profdata/memprof-multi.test b/llvm/test/tools/llvm-profdata/memprof-multi.test --- a/llvm/test/tools/llvm-profdata/memprof-multi.test +++ b/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 diff --git a/llvm/tools/llvm-profdata/llvm-profdata.cpp b/llvm/tools/llvm-profdata/llvm-profdata.cpp --- a/llvm/tools/llvm-profdata/llvm-profdata.cpp +++ b/llvm/tools/llvm-profdata/llvm-profdata.cpp @@ -2480,6 +2480,8 @@ std::unique_ptr Reader( ReaderOr.get().release()); + + OS << "memprof_profile:\n"; Reader->printSummaries(OS); return 0; }