diff options
| author | Dmitry Mikulin <dmitry.mikulin@sony.com> | 2019-04-23 22:26:55 +0000 |
|---|---|---|
| committer | Dmitry Mikulin <dmitry.mikulin@sony.com> | 2019-04-23 22:26:55 +0000 |
| commit | 312b5f86b7b2e15b376b55291eaf38c181039c43 (patch) | |
| tree | 8c6b9bfad9cd77f850550e944b9eb3e7b28981ff /llvm/lib/Transforms/Instrumentation | |
| parent | bfd248d2a67f0fe3596ffc50c15648bd1b91a578 (diff) | |
| download | bcm5719-llvm-312b5f86b7b2e15b376b55291eaf38c181039c43.tar.gz bcm5719-llvm-312b5f86b7b2e15b376b55291eaf38c181039c43.zip | |
The error message for mismatched value sites is very cryptic.
Make it more readable for an average user.
Differential Revision: https://reviews.llvm.org/D60896
llvm-svn: 359043
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation')
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp index b1c7687e19f..d5267a86e2d 100644 --- a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp +++ b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp @@ -1426,8 +1426,14 @@ void PGOUseFunc::annotateValueSites() { annotateValueSites(Kind); } +static const char *ValueProfKindDescr[] = { +#define VALUE_PROF_KIND(Enumerator, Value, Descr) Descr, +#include "llvm/ProfileData/InstrProfData.inc" +}; + // Annotate the instructions for a specific value kind. void PGOUseFunc::annotateValueSites(uint32_t Kind) { + assert(Kind <= IPVK_Last); unsigned ValueSiteIndex = 0; auto &ValueSites = FuncInfo.ValueSites[Kind]; unsigned NumValueSites = ProfileRecord.getNumValueSites(Kind); @@ -1435,8 +1441,10 @@ void PGOUseFunc::annotateValueSites(uint32_t Kind) { auto &Ctx = M->getContext(); Ctx.diagnose(DiagnosticInfoPGOProfile( M->getName().data(), - Twine("Inconsistent number of value sites for kind = ") + Twine(Kind) + - " in " + F.getName().str(), + Twine("Inconsistent number of value sites for ") + + Twine(ValueProfKindDescr[Kind]) + + Twine(" profiling in \"") + F.getName().str() + + Twine("\", possibly due to the use of a stale profile."), DS_Warning)); return; } |

