summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ProfileData/SampleProf.cpp
diff options
context:
space:
mode:
authorNathan Slingerland <slingn@gmail.com>2015-11-12 18:06:18 +0000
committerNathan Slingerland <slingn@gmail.com>2015-11-12 18:06:18 +0000
commitf0e107e38ad1acdf800216d877a82686cfc20143 (patch)
treea118835d23409631ffe3c00284c8f95ec869e467 /llvm/lib/ProfileData/SampleProf.cpp
parent4b6bdb538efa13179b7862dba11a0a07fc35e304 (diff)
downloadbcm5719-llvm-f0e107e38ad1acdf800216d877a82686cfc20143.tar.gz
bcm5719-llvm-f0e107e38ad1acdf800216d877a82686cfc20143.zip
[llvm-profdata] Add check for text profile formats and improve error reporting
Summary: This change addresses two possible instances of user error / confusion when merging sampled profile data. Previously any input that didn't match the raw or processed instrumented format would automatically be interpreted as instrumented profile text format data. No error would be reported during the merge. Example: If foo-sampled.profdata and bar-sampled.profdata are binary sampled profiles: Old behavior: $ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -output foobar-sampled.profdata $ llvm-profdata show -sample foobar-sampled.profdata error: foobar-sampled.profdata:1: Expected 'mangled_name:NUM:NUM', found lprofi This change adds basic checks for valid input data when assuming text input. It also makes error messages related to file format validity more specific about the assumbed profile data type. New behavior: $ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -o foobar-sampled.profdata error: foo.profdata: Unrecognized instrumentation profile encoding format Perhaps you forgot to use the -sample option? Reviewers: bogner, davidxl, dnovillo Subscribers: davidxl, llvm-commits Differential Revision: http://reviews.llvm.org/D14558 llvm-svn: 252916
Diffstat (limited to 'llvm/lib/ProfileData/SampleProf.cpp')
-rw-r--r--llvm/lib/ProfileData/SampleProf.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/ProfileData/SampleProf.cpp b/llvm/lib/ProfileData/SampleProf.cpp
index b5d3b2d2e55..856923e164b 100644
--- a/llvm/lib/ProfileData/SampleProf.cpp
+++ b/llvm/lib/ProfileData/SampleProf.cpp
@@ -28,17 +28,17 @@ class SampleProfErrorCategoryType : public std::error_category {
case sampleprof_error::success:
return "Success";
case sampleprof_error::bad_magic:
- return "Invalid file format (bad magic)";
+ return "Invalid sample profile data (bad magic)";
case sampleprof_error::unsupported_version:
- return "Unsupported format version";
+ return "Unsupported sample profile format version";
case sampleprof_error::too_large:
return "Too much profile data";
case sampleprof_error::truncated:
return "Truncated profile data";
case sampleprof_error::malformed:
- return "Malformed profile data";
+ return "Malformed sample profile data";
case sampleprof_error::unrecognized_format:
- return "Unrecognized profile encoding format";
+ return "Unrecognized sample profile encoding format";
case sampleprof_error::unsupported_writing_format:
return "Profile encoding format unsupported for writing operations";
case sampleprof_error::truncated_name_table:
OpenPOWER on IntegriCloud