Author: Mingming Liu
Date: 2025-08-23T14:37:13-07:00
New Revision: 52b0e3f1ccd81198f285a4e90558ed2015dc1db3
URL: https://github.com/llvm/llvm-project/commit/52b0e3f1ccd81198f285a4e90558ed2015dc1db3
DIFF: https://github.com/llvm/llvm-project/commit/52b0e3f1ccd81198f285a4e90558ed2015dc1db3.diff
LOG: [NFC][SampleFDO] In text sample prof reader, report dreport more concrete parsing errors for different line types (#154885)
The format `'NUM[.NUM]: NUM[ mangled_name:NUM]*'` applies for most line
types except metadata ones.
Added:
Modified:
llvm/lib/ProfileData/SampleProfReader.cpp
Removed:
################################################################################
diff --git a/llvm/lib/ProfileData/SampleProfReader.cpp b/llvm/lib/ProfileData/SampleProfReader.cpp
index d147222fe2ce6..15eb1d174d6fa 100644
--- a/llvm/lib/ProfileData/SampleProfReader.cpp
+++ b/llvm/lib/ProfileData/SampleProfReader.cpp
@@ -382,9 +382,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) {