diff --git a/lib/ProfileData/InstrProf.cpp b/lib/ProfileData/InstrProf.cpp index d2900c2a99f..a83b56ed67f 100644 --- a/lib/ProfileData/InstrProf.cpp +++ b/lib/ProfileData/InstrProf.cpp @@ -77,47 +77,48 @@ static cl::opt StaticFuncStripDirNamePrefix( static std::string getInstrProfErrString(instrprof_error Err) { switch (Err) { case instrprof_error::success: - return "Success"; + return "success"; case instrprof_error::eof: - return "End of File"; + return "end of File"; case instrprof_error::unrecognized_format: - return "Unrecognized instrumentation profile encoding format"; + return "unrecognized instrumentation profile encoding format"; case instrprof_error::bad_magic: - return "Invalid instrumentation profile data (bad magic)"; + return "invalid instrumentation profile data (bad magic)"; case instrprof_error::bad_header: - return "Invalid instrumentation profile data (file header is corrupt)"; + return "invalid instrumentation profile data (file header is corrupt)"; case instrprof_error::unsupported_version: - return "Unsupported instrumentation profile format version"; + return "unsupported instrumentation profile format version"; case instrprof_error::unsupported_hash_type: - return "Unsupported instrumentation profile hash type"; + return "unsupported instrumentation profile hash type"; case instrprof_error::too_large: - return "Too much profile data"; + return "too much profile data"; case instrprof_error::truncated: - return "Truncated profile data"; + return "truncated profile data"; case instrprof_error::malformed: - return "Malformed instrumentation profile data"; + return "malformed instrumentation profile data"; case instrprof_error::invalid_prof: - return "Invalid profile created. Please file a bug " + return "invalid profile created. Please file a bug " "at: " BUG_REPORT_URL " and include the profraw files that caused this error."; case instrprof_error::unknown_function: - return "No profile data available for function"; + return "no profile data available for function"; case instrprof_error::hash_mismatch: - return "Function control flow change detected (hash mismatch)"; + return "function control flow change detected (hash mismatch)"; case instrprof_error::count_mismatch: - return "Function basic block count change detected (counter mismatch)"; + return "function basic block count change detected (counter mismatch)"; case instrprof_error::counter_overflow: - return "Counter overflow"; + return "counter overflow"; case instrprof_error::value_site_count_mismatch: - return "Function value site count change detected (counter mismatch)"; + return "function value site count change detected (counter mismatch)"; case instrprof_error::compress_failed: - return "Failed to compress data (zlib)"; + return "failed to compress data (zlib)"; case instrprof_error::uncompress_failed: - return "Failed to uncompress data (zlib)"; + return "failed to uncompress data (zlib)"; case instrprof_error::empty_raw_profile: - return "Empty raw profile file"; + return "empty raw profile file"; case instrprof_error::zlib_unavailable: - return "Profile uses zlib compression but the profile reader was built without zlib support"; + return "profile uses zlib compression but the profile reader was built " + "without zlib support"; } llvm_unreachable("A value of instrprof_error has no message."); } diff --git a/test/Transforms/PGOProfile/diag_mismatch.ll b/test/Transforms/PGOProfile/diag_mismatch.ll index c1f6c6d5980..a7832e1cd79 100644 --- a/test/Transforms/PGOProfile/diag_mismatch.ll +++ b/test/Transforms/PGOProfile/diag_mismatch.ll @@ -2,7 +2,7 @@ ; RUN: opt < %s -pgo-instr-use -pgo-test-profile-file=%t.profdata -S 2>&1 | FileCheck %s ; RUN: opt < %s -passes=pgo-instr-use -pgo-test-profile-file=%t.profdata -S 2>&1 | FileCheck %s -; CHECK: Function control flow change detected (hash mismatch) foo +; CHECK: warning: {{.+}}: function control flow change detected (hash mismatch) foo target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/test/Transforms/PGOProfile/diag_no_funcprofdata.ll b/test/Transforms/PGOProfile/diag_no_funcprofdata.ll index 88133e2178c..92025c91064 100644 --- a/test/Transforms/PGOProfile/diag_no_funcprofdata.ll +++ b/test/Transforms/PGOProfile/diag_no_funcprofdata.ll @@ -5,8 +5,8 @@ ; RUN: opt < %s -pgo-instr-use -pgo-test-profile-file=%t.profdata -S 2>&1 | FileCheck %s --check-prefix=DEFAULT ; RUN: opt < %s -passes=pgo-instr-use -pgo-test-profile-file=%t.profdata -S 2>&1 | FileCheck %s --check-prefix=DEFAULT -; CHECK: No profile data available for function bar -; DEFAULT-NOT: No profile data available for function bar +; CHECK: warning: {{.+}}: no profile data available for function bar +; DEFAULT-NOT: no profile data available for function bar target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/test/tools/llvm-profdata/count-mismatch.proftext b/test/tools/llvm-profdata/count-mismatch.proftext index b42b11dbcf9..c4ac2f7866d 100644 --- a/test/tools/llvm-profdata/count-mismatch.proftext +++ b/test/tools/llvm-profdata/count-mismatch.proftext @@ -14,7 +14,7 @@ foo # The hash matches, but we can't combine these because the number of # counters differs. -# MERGE_ERRS: count-mismatch.proftext: foo: Function basic block count change detected (counter mismatch) +# MERGE_ERRS: count-mismatch.proftext: foo: function basic block count change detected (counter mismatch) # MERGE_ERRS: Make sure that all profile data to be merged is generated from the same binary. foo 1024 diff --git a/test/tools/llvm-profdata/invalid-profdata.test b/test/tools/llvm-profdata/invalid-profdata.test index dd93f493d40..efa16392e42 100644 --- a/test/tools/llvm-profdata/invalid-profdata.test +++ b/test/tools/llvm-profdata/invalid-profdata.test @@ -21,8 +21,8 @@ RUN: echo "1" >> %t.input RUN: echo ":10" >> %t.input RUN: not llvm-profdata merge %t.input -text -output=/dev/null 2>&1 | FileCheck %s --check-prefix=BROKEN -BROKEN: warning: {{.*}}invalid-profdata.test.tmp.input: Malformed instrumentation profile data -BROKEN-NEXT: error: No profiles could be merged. +BROKEN: warning: {{.*}}invalid-profdata.test.tmp.input: malformed instrumentation profile data +BROKEN-NEXT: error: no profile can be merged RUN: echo ":ir" > %t.input RUN: echo "_ZN6Thread5StartEv" >> %t.input diff --git a/test/tools/llvm-profdata/invalid-profile-gen-zeros.proftext b/test/tools/llvm-profdata/invalid-profile-gen-zeros.proftext index 63a7dd91d17..09a7cb15237 100644 --- a/test/tools/llvm-profdata/invalid-profile-gen-zeros.proftext +++ b/test/tools/llvm-profdata/invalid-profile-gen-zeros.proftext @@ -1,7 +1,7 @@ # RUN: llvm-profdata merge --text -j 4 %s %s %s %s -o %t 2>&1 | FileCheck %s # RUN: llvm-profdata merge --binary -j 4 %s %s %s %s -o %t 2>&1 | FileCheck %s # IR level Instrumentation Flag -# CHECK: Invalid profile +# CHECK: warning: invalid profile created :ir foo # Func Hash: diff --git a/test/tools/llvm-profdata/malformed-ptr-to-counter-array.test b/test/tools/llvm-profdata/malformed-ptr-to-counter-array.test index bad4eb30182..5df43f4b9f9 100644 --- a/test/tools/llvm-profdata/malformed-ptr-to-counter-array.test +++ b/test/tools/llvm-profdata/malformed-ptr-to-counter-array.test @@ -51,4 +51,5 @@ RUN: printf '\101\0\0\0\0\0\0\0' >> %t.profraw RUN: printf '\3\0bar\0\0\0' >> %t.profraw RUN: not llvm-profdata merge -o /dev/null %t.profraw 2>&1 | FileCheck %s -CHECK: Malformed instrumentation profile data +CHECK: warning: {{.+}}: malformed instrumentation profile data +CHECK: error: no profile can be merged diff --git a/test/tools/llvm-profdata/overflow-instr.test b/test/tools/llvm-profdata/overflow-instr.test index 73acbd937dd..59f8125a040 100644 --- a/test/tools/llvm-profdata/overflow-instr.test +++ b/test/tools/llvm-profdata/overflow-instr.test @@ -3,13 +3,13 @@ Tests for overflow when merging instrumented profiles. 1- Merge profile having maximum counts with itself and verify overflow detected and saturation occurred RUN: llvm-profdata merge -instr %p/Inputs/overflow-instr.proftext %p/Inputs/overflow-instr.proftext -o %t.out 2>&1 | FileCheck %s -check-prefix=MERGE_OVERFLOW RUN: llvm-profdata show -instr -all-functions -counts %t.out | FileCheck %s --check-prefix=SHOW_OVERFLOW -MERGE_OVERFLOW: {{.*}}: overflow: Counter overflow +MERGE_OVERFLOW: {{.*}}.proftext: overflow: counter overflow SHOW_OVERFLOW: Function count: 18446744073709551615 SHOW_OVERFLOW-NEXT: Block counts: [18446744073709551615, 18446744073709551615] 2- Merge profile having maximum counts by itself and verify no overflow RUN: llvm-profdata merge -instr %p/Inputs/overflow-instr.proftext -o %t.out 2>&1 | FileCheck %s -check-prefix=MERGE_NO_OVERFLOW -allow-empty RUN: llvm-profdata show -instr -all-functions -counts %t.out | FileCheck %s --check-prefix=SHOW_NO_OVERFLOW -MERGE_NO_OVERFLOW-NOT: {{.*}}: overflow: Counter overflow +MERGE_NO_OVERFLOW-NOT: {{.*}}.proftext: overflow: counter overflow SHOW_NO_OVERFLOW: Function count: 18446744073709551615 SHOW_NO_OVERFLOW-NEXT: Block counts: [9223372036854775808, 18446744073709551615] diff --git a/test/tools/llvm-profdata/raw-magic-but-no-header.test b/test/tools/llvm-profdata/raw-magic-but-no-header.test index 76894faa183..bd2b797831f 100644 --- a/test/tools/llvm-profdata/raw-magic-but-no-header.test +++ b/test/tools/llvm-profdata/raw-magic-but-no-header.test @@ -3,4 +3,4 @@ RUN: not llvm-profdata show %t 2>&1 | FileCheck %s RUN: printf '\377lprofr\201' > %t RUN: not llvm-profdata show %t 2>&1 | FileCheck %s -CHECK: error: {{.+}}: Invalid instrumentation profile data (file header is corrupt) +CHECK: error: {{.+}}: invalid instrumentation profile data (file header is corrupt) diff --git a/test/tools/llvm-profdata/text-dump.test b/test/tools/llvm-profdata/text-dump.test index 94a78d9dbac..a6cdfec4b4f 100644 --- a/test/tools/llvm-profdata/text-dump.test +++ b/test/tools/llvm-profdata/text-dump.test @@ -16,6 +16,4 @@ RUN: diff %t-basic.dump3 %t-basic.dump4 RUN: diff %t-basic.proftext5 %t-basic.proftext6 RUN: not llvm-profdata merge -gcc -o %t-basic-profdata3 %t-basic.proftext2 2>&1 | FileCheck %s --check-prefix=UNKNOWN -UNKNOWN: Unknown - - +UNKNOWN: unknown format is specified diff --git a/test/tools/llvm-profdata/text-format-errors.test b/test/tools/llvm-profdata/text-format-errors.test index 8f7b747f9bf..9d3f3ff6e98 100644 --- a/test/tools/llvm-profdata/text-format-errors.test +++ b/test/tools/llvm-profdata/text-format-errors.test @@ -2,36 +2,36 @@ Tests for instrumentation profile bad encoding. 1- Detect invalid count RUN: not llvm-profdata show %p/Inputs/invalid-count-later.proftext 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER-SHOW -INVALID-COUNT-LATER-SHOW: error: {{.*}}invalid-count-later.proftext: Malformed instrumentation profile data +INVALID-COUNT-LATER-SHOW: error: {{.*}}invalid-count-later.proftext: malformed instrumentation profile data RUN: not llvm-profdata merge %p/Inputs/invalid-count-later.proftext %p/Inputs/invalid-count-later.proftext -o %t.out 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER-MERGE RUN: not llvm-profdata merge -failure-mode=all %p/Inputs/invalid-count-later.proftext %p/Inputs/invalid-count-later.proftext -o %t.out 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER-MERGE -INVALID-COUNT-LATER-MERGE: warning: {{.*}}invalid-count-later.proftext: Malformed instrumentation profile data -INVALID-COUNT-LATER-MERGE-NEXT: warning: {{.*}}invalid-count-later.proftext: Malformed instrumentation profile data -INVALID-COUNT-LATER-MERGE-NEXT: error: No profiles could be merged. +INVALID-COUNT-LATER-MERGE: warning: {{.*}}invalid-count-later.proftext: malformed instrumentation profile data +INVALID-COUNT-LATER-MERGE-NEXT: warning: {{.*}}invalid-count-later.proftext: malformed instrumentation profile data +INVALID-COUNT-LATER-MERGE-NEXT: error: no profile can be merged 2- Detect bad hash RUN: not llvm-profdata show %p/Inputs/bad-hash.proftext 2>&1 | FileCheck %s --check-prefix=BAD-HASH-SHOW -BAD-HASH-SHOW: error: {{.*}}bad-hash.proftext: Malformed instrumentation profile data +BAD-HASH-SHOW: error: {{.*}}bad-hash.proftext: malformed instrumentation profile data RUN: not llvm-profdata merge %p/Inputs/bad-hash.proftext %p/Inputs/bad-hash.proftext -o %t.out 2>&1 | FileCheck %s --check-prefix=BAD-HASH-MERGE -BAD-HASH-MERGE: warning: {{.*}}bad-hash.proftext: Malformed instrumentation profile data -BAD-HASH-NEXT: error: No profiles could be merged. +BAD-HASH-MERGE: warning: {{.*}}bad-hash.proftext: malformed instrumentation profile data +BAD-HASH-NEXT: error: no profiles can be merged 3- Detect no counts RUN: not llvm-profdata show %p/Inputs/no-counts.proftext 2>&1 | FileCheck %s --check-prefix=NO-COUNTS -NO-COUNTS: error: {{.*}}no-counts.proftext: Malformed instrumentation profile data +NO-COUNTS: error: {{.*}}no-counts.proftext: malformed instrumentation profile data 4- Detect binary input RUN: not llvm-profdata show %p/Inputs/text-format-errors.text.bin 2>&1 | FileCheck %s --check-prefix=BINARY -BINARY: error: {{.+}}: Unrecognized instrumentation profile encoding format +BINARY: error: {{.+}}: unrecognized instrumentation profile encoding format BINARY: Perhaps you forgot to use the --sample option? 5- Detect malformed value profile data RUN: not llvm-profdata show %p/Inputs/vp-malform.proftext 2>&1 | FileCheck %s --check-prefix=VP RUN: not llvm-profdata show %p/Inputs/vp-malform2.proftext 2>&1 | FileCheck %s --check-prefix=VP -VP: Malformed instrumentation profile data +VP: error: {{.+}}: malformed instrumentation profile data 6- Detect truncated value profile data RUN: not llvm-profdata show %p/Inputs/vp-truncate.proftext 2>&1 | FileCheck %s --check-prefix=VPTRUNC -VPTRUNC: Truncated profile data +VPTRUNC: error: {{.+}}: truncated profile data diff --git a/test/tools/llvm-profdata/threaded-count-mismatch.test b/test/tools/llvm-profdata/threaded-count-mismatch.test index 8e704cf85a6..3341e54af48 100644 --- a/test/tools/llvm-profdata/threaded-count-mismatch.test +++ b/test/tools/llvm-profdata/threaded-count-mismatch.test @@ -7,4 +7,4 @@ RUN: %S/Inputs/counter-mismatch-3.proftext \ RUN: %S/Inputs/counter-mismatch-4.proftext \ RUN: 2>&1 | FileCheck %s -CHECK: Function basic block count change detected (counter mismatch) +CHECK: {{.+}}: foo: function basic block count change detected (counter mismatch) diff --git a/test/tools/llvm-profdata/weight-instr.test b/test/tools/llvm-profdata/weight-instr.test index db016d49942..3f6979a071d 100644 --- a/test/tools/llvm-profdata/weight-instr.test +++ b/test/tools/llvm-profdata/weight-instr.test @@ -70,7 +70,7 @@ RUN: not llvm-profdata merge -instr -weighted-input=3,%p/Inputs/weight-instr-bar RUN: not llvm-profdata merge -instr -weighted-input=3,%p/Inputs/weight-instr-bar.profdata -weighted-input=-5,%p/Inputs/weight-instr-foo.profdata -o %t.out 2>&1 | FileCheck %s -check-prefix=INVALID_WEIGHT RUN: not llvm-profdata merge -instr -weighted-input=3,%p/Inputs/weight-instr-bar.profdata -weighted-input=,%p/Inputs/weight-instr-foo.profdata -o %t.out 2>&1 | FileCheck %s -check-prefix=INVALID_WEIGHT RUN: not llvm-profdata merge -instr -weighted-input=3,%p/Inputs/weight-instr-bar.profdata -weighted-input=%p/Inputs/weight-instr-foo.profdata -o %t.out 2>&1 | FileCheck %s -check-prefix=INVALID_WEIGHT -INVALID_WEIGHT: error: Input weight must be a positive integer. +INVALID_WEIGHT: error: input weight must be a positive integer 4- Bad merge: input path does not exist RUN: not llvm-profdata merge -instr -weighted-input=3,%p/Inputs/does-not-exist.profdata -weighted-input=2,%p/Inputs/does-not-exist-either.profdata -o %t.out 2>&1 | FileCheck -DMSG=%errc_ENOENT %s -check-prefix=INVALID_INPUT @@ -78,4 +78,4 @@ INVALID_INPUT: {{.*}}: {{.*}}does-not-exist.profdata: [[MSG]] 5- No inputs RUN: not llvm-profdata merge -instr -o %t.out 2>&1 | FileCheck %s -check-prefix=NO_INPUT -NO_INPUT: {{.*}}: No input files specified. See llvm-profdata{{(\.EXE|\.exe)?}} merge -help +NO_INPUT: error: no input files specified. See llvm-profdata{{(\.EXE|\.exe)?}} merge -help diff --git a/test/tools/llvm-profdata/weight-sample.test b/test/tools/llvm-profdata/weight-sample.test index 6ba47da9fcb..4c28a4a1ebf 100644 --- a/test/tools/llvm-profdata/weight-sample.test +++ b/test/tools/llvm-profdata/weight-sample.test @@ -45,7 +45,7 @@ RUN: not llvm-profdata merge -sample -weighted-input=3,%p/Inputs/weight-sample-b RUN: not llvm-profdata merge -sample -weighted-input=3,%p/Inputs/weight-sample-bar.proftext -weighted-input=-5,%p/Inputs/weight-sample-foo.proftext -o %t.out 2>&1 | FileCheck %s -check-prefix=INVALID_WEIGHT RUN: not llvm-profdata merge -sample -weighted-input=3,%p/Inputs/weight-sample-bar.proftext -weighted-input=,%p/Inputs/weight-sample-foo.proftext -o %t.out 2>&1 | FileCheck %s -check-prefix=INVALID_WEIGHT RUN: not llvm-profdata merge -sample -weighted-input=3,%p/Inputs/weight-sample-bar.proftext -weighted-input=%p/Inputs/weight-sample-foo.proftext -o %t.out 2>&1 | FileCheck %s -check-prefix=INVALID_WEIGHT -INVALID_WEIGHT: error: Input weight must be a positive integer. +INVALID_WEIGHT: error: input weight must be a positive integer 4- Bad merge: input path does not exist RUN: not llvm-profdata merge -sample -weighted-input=3,%p/Inputs/does-not-exist.proftext -weighted-input=2,%p/Inputs/does-not-exist-either.proftext -o %t.out 2>&1 | FileCheck -DMSG=%errc_ENOENT %s -check-prefix=INVALID_INPUT @@ -53,4 +53,4 @@ INVALID_INPUT: {{.*}}: {{.*}}does-not-exist.proftext: [[MSG]] 5- No inputs RUN: not llvm-profdata merge -sample -o %t.out 2>&1 | FileCheck %s -check-prefix=NO_INPUT -NO_INPUT: {{.*}}: No input files specified. See llvm-profdata{{(\.EXE|\.exe)?}} merge -help +NO_INPUT: {{.*}}: no input files specified. See llvm-profdata{{(\.EXE|\.exe)?}} merge -help diff --git a/tools/llvm-profdata/llvm-profdata.cpp b/tools/llvm-profdata/llvm-profdata.cpp index d8c77f32b39..58d3b41cba1 100644 --- a/tools/llvm-profdata/llvm-profdata.cpp +++ b/tools/llvm-profdata/llvm-profdata.cpp @@ -327,11 +327,11 @@ static void mergeInstrProfile(const WeightedFileVector &Inputs, ProfileFormat OutputFormat, bool OutputSparse, unsigned NumThreads, FailureMode FailMode) { if (OutputFilename.compare("-") == 0) - exitWithError("Cannot write indexed profdata format to stdout."); + exitWithError("cannot write indexed profdata format to stdout"); if (OutputFormat != PF_Binary && OutputFormat != PF_Compact_Binary && OutputFormat != PF_Ext_Binary && OutputFormat != PF_Text) - exitWithError("Unknown format is specified."); + exitWithError("unknown format is specified"); std::mutex ErrorLock; SmallSet WriterErrorCodes; @@ -394,7 +394,7 @@ static void mergeInstrProfile(const WeightedFileVector &Inputs, } if (NumErrors == Inputs.size() || (NumErrors > 0 && FailMode == failIfAnyAreInvalid)) - exitWithError("No profiles could be merged."); + exitWithError("no profile can be merged"); writeInstrProfile(OutputFilename, OutputFormat, Contexts[0]->Writer); } @@ -552,11 +552,11 @@ static void supplementInstrProfile( unsigned SupplMinSizeThreshold, float ZeroCounterThreshold, unsigned InstrProfColdThreshold) { if (OutputFilename.compare("-") == 0) - exitWithError("Cannot write indexed profdata format to stdout."); + exitWithError("cannot write indexed profdata format to stdout"); if (Inputs.size() != 1) - exitWithError("Expect one input to be an instr profile."); + exitWithError("expect one input to be an instr profile"); if (Inputs[0].Weight != 1) - exitWithError("Expect instr profile doesn't have weight."); + exitWithError("expect instr profile doesn't have weight"); StringRef InstrFilename = Inputs[0].Filename; @@ -784,7 +784,7 @@ static WeightedFile parseWeightedFile(const StringRef &WeightedFilename) { uint64_t Weight; if (WeightStr.getAsInteger(10, Weight) || Weight < 1) - exitWithError("Input weight must be a positive integer."); + exitWithError("input weight must be a positive integer"); return {std::string(FileName), Weight}; } @@ -958,7 +958,7 @@ static int merge_main(int argc, const char *argv[]) { parseInputFilenamesFile(Buffer.get(), WeightedInputs); if (WeightedInputs.empty()) - exitWithError("No input files specified. See " + + exitWithError("no input files specified. See " + sys::path::filename(argv[0]) + " -help"); if (DumpInputFileList) { @@ -1007,7 +1007,7 @@ static void overlapInstrProfile(const std::string &BaseFilename, OverlapStats Overlap; Error E = Overlap.accumulateCounts(BaseFilename, TestFilename, IsCS); if (E) - exitWithError(std::move(E), "Error in getting profile count sums"); + exitWithError(std::move(E), "error in getting profile count sums"); if (Overlap.Base.CountSum < 1.0f) { OS << "Sum of edge counts for profile " << BaseFilename << " is 0.\n"; exit(0);