diff options
Diffstat (limited to 'polly/lib/Analysis/ScopDetectionDiagnostic.cpp')
-rw-r--r-- | polly/lib/Analysis/ScopDetectionDiagnostic.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopDetectionDiagnostic.cpp b/polly/lib/Analysis/ScopDetectionDiagnostic.cpp index ca70018e8fb..ffc259f991a 100644 --- a/polly/lib/Analysis/ScopDetectionDiagnostic.cpp +++ b/polly/lib/Analysis/ScopDetectionDiagnostic.cpp @@ -60,6 +60,7 @@ llvm::Statistic RejectStatistics[] = { SCOP_STAT(LastAffFunc, ""), SCOP_STAT(LoopBound, "Uncomputable loop bounds"), SCOP_STAT(LoopHasNoExit, "Loop without exit"), + SCOP_STAT(LoopOnlySomeLatches, "Not all loop latches in scop"), SCOP_STAT(FuncCall, "Function call with side effects"), SCOP_STAT(NonSimpleMemoryAccess, "Compilated access semantics (volatile or atomic)"), @@ -393,6 +394,25 @@ std::string ReportLoopHasNoExit::getEndUserMessage() const { } //===----------------------------------------------------------------------===// +// ReportLoopOnlySomeLatches + +std::string ReportLoopOnlySomeLatches::getMessage() const { + return "Not all latches of loop " + L->getHeader()->getName() + + " part of scop."; +} + +bool ReportLoopOnlySomeLatches::classof(const RejectReason *RR) { + return RR->getKind() == RejectReasonKind::LoopHasNoExit; +} + +const DebugLoc &ReportLoopOnlySomeLatches::getDebugLoc() const { return Loc; } + +std::string ReportLoopOnlySomeLatches::getEndUserMessage() const { + return "Loop cannot be handled because not all latches are part of loop " + "region."; +} + +//===----------------------------------------------------------------------===// // ReportFuncCall. ReportFuncCall::ReportFuncCall(Instruction *Inst) |