diff options
-rw-r--r-- | polly/include/polly/ScopDetectionDiagnostic.h | 20 | ||||
-rw-r--r-- | polly/lib/Analysis/ScopDetection.cpp | 8 | ||||
-rw-r--r-- | polly/lib/Analysis/ScopDetectionDiagnostic.cpp | 16 | ||||
-rw-r--r-- | polly/test/ScopDetect/simple_loop_non_single_entry.ll | 4 |
4 files changed, 2 insertions, 46 deletions
diff --git a/polly/include/polly/ScopDetectionDiagnostic.h b/polly/include/polly/ScopDetectionDiagnostic.h index e428a2484fa..9f77ac04552 100644 --- a/polly/include/polly/ScopDetectionDiagnostic.h +++ b/polly/include/polly/ScopDetectionDiagnostic.h @@ -84,8 +84,6 @@ enum RejectReasonKind { rrkAlias, - rrkSimpleLoop, - // Other rrkOther, rrkIntToPtr, @@ -617,24 +615,6 @@ public: }; //===----------------------------------------------------------------------===// -/// @brief Captures errors with non simplified loops. -class ReportSimpleLoop : public RejectReason { - //===--------------------------------------------------------------------===// -public: - ReportSimpleLoop(); - - /// @name LLVM-RTTI interface - //@{ - static bool classof(const RejectReason *RR); - //@} - - /// @name RejectReason interface - //@{ - virtual std::string getMessage() const override; - //@} -}; - -//===----------------------------------------------------------------------===// /// @brief Base class for otherwise ungrouped reject reasons. class ReportOther : public RejectReason { //===--------------------------------------------------------------------===// diff --git a/polly/lib/Analysis/ScopDetection.cpp b/polly/lib/Analysis/ScopDetection.cpp index 1ec38d566ed..5aa905928d1 100644 --- a/polly/lib/Analysis/ScopDetection.cpp +++ b/polly/lib/Analysis/ScopDetection.cpp @@ -1031,14 +1031,6 @@ bool ScopDetection::isValidRegion(DetectionContext &Context) const { return false; } - if (!CurRegion.getEnteringBlock()) { - BasicBlock *entry = CurRegion.getEntry(); - Loop *L = LI->getLoopFor(entry); - - if (L && !L->isLoopSimplifyForm()) - return invalid<ReportSimpleLoop>(Context, /*Assert=*/true); - } - // SCoP cannot contain the entry block of the function, because we need // to insert alloca instruction there when translate scalar to array. if (CurRegion.getEntry() == diff --git a/polly/lib/Analysis/ScopDetectionDiagnostic.cpp b/polly/lib/Analysis/ScopDetectionDiagnostic.cpp index 62fe092d394..9b6673c911e 100644 --- a/polly/lib/Analysis/ScopDetectionDiagnostic.cpp +++ b/polly/lib/Analysis/ScopDetectionDiagnostic.cpp @@ -44,7 +44,6 @@ BADSCOP_STAT(LoopBound, "Loop bounds can not be computed"); BADSCOP_STAT(FuncCall, "Function call with side effects appeared"); BADSCOP_STAT(AffFunc, "Expression not affine"); BADSCOP_STAT(Alias, "Found base address alias"); -BADSCOP_STAT(SimpleLoop, "Loop not in -loop-simplify form"); BADSCOP_STAT(Other, "Others"); namespace polly { @@ -419,21 +418,6 @@ bool ReportAlias::classof(const RejectReason *RR) { } //===----------------------------------------------------------------------===// -// ReportSimpleLoop. - -ReportSimpleLoop::ReportSimpleLoop() : RejectReason(rrkSimpleLoop) { - ++BadSimpleLoopForScop; -} - -std::string ReportSimpleLoop::getMessage() const { - return "Loop not in simplify form is invalid!"; -} - -bool ReportSimpleLoop::classof(const RejectReason *RR) { - return RR->getKind() == rrkSimpleLoop; -} - -//===----------------------------------------------------------------------===// // ReportOther. std::string ReportOther::getMessage() const { return "Unknown reject reason"; } diff --git a/polly/test/ScopDetect/simple_loop_non_single_entry.ll b/polly/test/ScopDetect/simple_loop_non_single_entry.ll index a9763088cae..ccf5c67c4f0 100644 --- a/polly/test/ScopDetect/simple_loop_non_single_entry.ll +++ b/polly/test/ScopDetect/simple_loop_non_single_entry.ll @@ -13,7 +13,7 @@ ; A[i] = i; ; } -; We will not detect this scop, as the loop is not in -loop-simplify form. +; We will detect this scop even if the loop is not in lcssa form target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" @@ -41,4 +41,4 @@ return: ret void } -; CHECK-NOT: Valid Region for Scop +; CHECK: Valid Region for Scop |