[llvm] [NFC][SampleFDO] Re-apply "In text sample prof reader, report more concrete parsing errors for different line types" (PR #155124)
Mingming Liu via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 23 17:06:59 PDT 2025
https://github.com/mingmingl-llvm updated https://github.com/llvm/llvm-project/pull/155124
>From f19f3f75ca3754f8d777665dd4457e3737879e7e Mon Sep 17 00:00:00 2001
From: mingmingl <mingmingl at google.com>
Date: Thu, 21 Aug 2025 21:42:54 -0700
Subject: [PATCH 1/3] [NFC]In text sample prof reader, report dreport more
concrete parsing errors for different line types
---
llvm/lib/ProfileData/SampleProfReader.cpp | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/llvm/lib/ProfileData/SampleProfReader.cpp b/llvm/lib/ProfileData/SampleProfReader.cpp
index d147222fe2ce6..c4cba62524ed6 100644
--- a/llvm/lib/ProfileData/SampleProfReader.cpp
+++ b/llvm/lib/ProfileData/SampleProfReader.cpp
@@ -357,6 +357,7 @@ std::error_code SampleProfileReaderText::readImpl() {
uint64_t NumSamples, NumHeadSamples;
StringRef FName;
if (!ParseHead(*LineIt, FName, NumSamples, NumHeadSamples)) {
+
reportError(LineIt.line_number(),
"Expected 'mangled_name:NUM:NUM', found " + *LineIt);
return sampleprof_error::malformed;
@@ -382,9 +383,16 @@ std::error_code SampleProfileReaderText::readImpl() {
if (!ParseLine(*LineIt, LineTy, Depth, NumSamples, LineOffset,
Discriminator, FName, TargetCountMap, FunctionHash,
Attributes, IsFlat)) {
- reportError(LineIt.line_number(),
- "Expected 'NUM[.NUM]: NUM[ mangled_name:NUM]*', found " +
- *LineIt);
+ switch (LineTy) {
+ case LineType::Metadata:
+ reportError(LineIt.line_number(),
+ "Cannot parse metadata: " + *LineIt);
+ break;
+ default:
+ reportError(LineIt.line_number(),
+ "Expected 'NUM[.NUM]: NUM[ mangled_name:NUM]*', found " +
+ *LineIt);
+ }
return sampleprof_error::malformed;
}
if (LineTy != LineType::Metadata && Depth == DepthMetadata) {
>From 4fd84dbc4eb7553fec9763a0e9007c38df499e34 Mon Sep 17 00:00:00 2001
From: mingmingl <mingmingl at google.com>
Date: Thu, 21 Aug 2025 21:53:46 -0700
Subject: [PATCH 2/3] undo empty line
---
llvm/lib/ProfileData/SampleProfReader.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/llvm/lib/ProfileData/SampleProfReader.cpp b/llvm/lib/ProfileData/SampleProfReader.cpp
index c4cba62524ed6..15eb1d174d6fa 100644
--- a/llvm/lib/ProfileData/SampleProfReader.cpp
+++ b/llvm/lib/ProfileData/SampleProfReader.cpp
@@ -357,7 +357,6 @@ std::error_code SampleProfileReaderText::readImpl() {
uint64_t NumSamples, NumHeadSamples;
StringRef FName;
if (!ParseHead(*LineIt, FName, NumSamples, NumHeadSamples)) {
-
reportError(LineIt.line_number(),
"Expected 'mangled_name:NUM:NUM', found " + *LineIt);
return sampleprof_error::malformed;
>From bcb3d012f910f4d5c635b76f49eb7e4d5706af2e Mon Sep 17 00:00:00 2001
From: mingmingl <mingmingl at google.com>
Date: Sat, 23 Aug 2025 16:31:53 -0700
Subject: [PATCH 3/3] initialize LineTy before using it
---
llvm/lib/ProfileData/SampleProfReader.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/ProfileData/SampleProfReader.cpp b/llvm/lib/ProfileData/SampleProfReader.cpp
index 15eb1d174d6fa..12769a391286c 100644
--- a/llvm/lib/ProfileData/SampleProfReader.cpp
+++ b/llvm/lib/ProfileData/SampleProfReader.cpp
@@ -375,7 +375,7 @@ std::error_code SampleProfileReaderText::readImpl() {
StringRef FName;
DenseMap<StringRef, uint64_t> TargetCountMap;
uint32_t Depth, LineOffset, Discriminator;
- LineType LineTy;
+ LineType LineTy = LineType::BodyProfile;
uint64_t FunctionHash = 0;
uint32_t Attributes = 0;
bool IsFlat = false;
More information about the llvm-commits
mailing list