summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--polly/include/polly/ScopDetectionDiagnostic.h20
-rw-r--r--polly/lib/Analysis/ScopDetection.cpp8
-rw-r--r--polly/lib/Analysis/ScopDetectionDiagnostic.cpp16
-rw-r--r--polly/test/ScopDetect/simple_loop_non_single_entry.ll4
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
OpenPOWER on IntegriCloud