[polly-PATCH 3/3] Drop option -polly-allow-nonaffine-branches

Tobias Grosser tobias at grosser.es
Sat Apr 18 09:14:44 PDT 2015


This option has been enabled since a while. Since no bugs have been reported, we
will always allow non-affine branches. This reduces the combinations of options
that need to be tested.
---
 lib/Analysis/ScopDetection.cpp                      | 21 ++++++---------------
 test/Isl/CodeGen/non_affine_float_compare.ll        |  2 +-
 test/ScopDetect/non-affine-conditional.ll           |  2 +-
 test/ScopDetect/non-affine-float-compare.ll         |  2 +-
 .../non-affine-loop-condition-dependent-access.ll   |  6 +++---
 .../non-affine-loop-condition-dependent-access_2.ll |  6 +++---
 .../non-affine-loop-condition-dependent-access_3.ll |  6 +++---
 test/ScopDetect/non-affine-loop.ll                  |  8 ++++----
 .../non-affine-loop-condition-dependent-access_1.ll |  2 +-
 .../non-affine-loop-condition-dependent-access_2.ll |  6 +++---
 .../non-affine-loop-condition-dependent-access_3.ll |  6 +++---
 .../NonAffine/non_affine_conditional_nested.ll      |  2 +-
 ...on_affine_conditional_surrounding_affine_loop.ll |  4 ++--
 ...ffine_conditional_surrounding_non_affine_loop.ll |  4 ++--
 test/ScopInfo/NonAffine/non_affine_float_compare.ll |  2 +-
 .../ScopInfo/NonAffine/non_affine_loop_condition.ll |  2 +-
 .../NonAffine/non_affine_loop_used_later.ll         |  2 +-
 17 files changed, 37 insertions(+), 46 deletions(-)

diff --git a/lib/Analysis/ScopDetection.cpp b/lib/Analysis/ScopDetection.cpp
index 22fa60a..bf46b34 100644
--- a/lib/Analysis/ScopDetection.cpp
+++ b/lib/Analysis/ScopDetection.cpp
@@ -126,11 +126,6 @@ static cl::opt<bool>
                    cl::Hidden, cl::init(false), cl::ZeroOrMore,
                    cl::cat(PollyCategory));
 
-static cl::opt<bool> AllowNonAffineSubRegions(
-    "polly-allow-nonaffine-branches",
-    cl::desc("Allow non affine conditions for branches"), cl::Hidden,
-    cl::init(true), cl::ZeroOrMore, cl::cat(PollyCategory));
-
 static cl::opt<bool>
     AllowNonAffineSubLoops("polly-allow-nonaffine-loops",
                            cl::desc("Allow non affine conditions for loops"),
@@ -321,8 +316,7 @@ bool ScopDetection::isValidCFG(BasicBlock &BB,
 
   // Only Constant and ICmpInst are allowed as condition.
   if (!(isa<Constant>(Condition) || isa<ICmpInst>(Condition))) {
-    if (!AllowNonAffineSubRegions ||
-        !addOverApproximatedRegion(RI->getRegionFor(&BB), Context))
+    if (!addOverApproximatedRegion(RI->getRegionFor(&BB), Context))
       return invalid<ReportInvalidCond>(Context, /*Assert=*/true, Br, &BB);
   }
 
@@ -349,8 +343,7 @@ bool ScopDetection::isValidCFG(BasicBlock &BB,
 
     if (!isAffineExpr(&CurRegion, LHS, *SE) ||
         !isAffineExpr(&CurRegion, RHS, *SE)) {
-      if (!AllowNonAffineSubRegions ||
-          !addOverApproximatedRegion(RI->getRegionFor(&BB), Context))
+      if (!addOverApproximatedRegion(RI->getRegionFor(&BB), Context))
         return invalid<ReportNonAffBranch>(Context, /*Assert=*/true, &BB, LHS,
                                            RHS, ICmp);
     }
@@ -685,12 +678,10 @@ bool ScopDetection::isValidLoop(Loop *L, DetectionContext &Context) const {
     return true;
   }
 
-  if (AllowNonAffineSubRegions) {
-    Region *R = RI->getRegionFor(L->getHeader());
-    if (R->contains(L))
-      if (addOverApproximatedRegion(R, Context))
-        return true;
-  }
+  Region *R = RI->getRegionFor(L->getHeader());
+  if (R->contains(L))
+    if (addOverApproximatedRegion(R, Context))
+      return true;
 
   return invalid<ReportLoopBound>(Context, /*Assert=*/true, L, LoopCount);
 }
diff --git a/test/Isl/CodeGen/non_affine_float_compare.ll b/test/Isl/CodeGen/non_affine_float_compare.ll
index d62e1e6..865cfef 100644
--- a/test/Isl/CodeGen/non_affine_float_compare.ll
+++ b/test/Isl/CodeGen/non_affine_float_compare.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-codegen-isl -polly-no-early-exit -polly-allow-nonaffine-branches -S -verify-dom-info < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-codegen-isl -polly-no-early-exit -S -verify-dom-info < %s | FileCheck %s
 ;
 ;    void f(float *A) {
 ;      for (int i = 0; i < 1024; i++)
diff --git a/test/ScopDetect/non-affine-conditional.ll b/test/ScopDetect/non-affine-conditional.ll
index d5ed1a9..a95c2a3 100644
--- a/test/ScopDetect/non-affine-conditional.ll
+++ b/test/ScopDetect/non-affine-conditional.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-allow-nonaffine-branches -polly-detect -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-detect -analyze < %s | FileCheck %s
 ;
 ;    void f(int *A) {
 ;      for (int i = 0; i < 1024; i++)
diff --git a/test/ScopDetect/non-affine-float-compare.ll b/test/ScopDetect/non-affine-float-compare.ll
index 875d220..2172cef 100644
--- a/test/ScopDetect/non-affine-float-compare.ll
+++ b/test/ScopDetect/non-affine-float-compare.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-branches -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-detect -analyze < %s | FileCheck %s
 ;
 ;    void f(float *A) {
 ;      for (int i = 0; i < 1024; i++)
diff --git a/test/ScopDetect/non-affine-loop-condition-dependent-access.ll b/test/ScopDetect/non-affine-loop-condition-dependent-access.ll
index 9bd7ebc..10eb75d 100644
--- a/test/ScopDetect/non-affine-loop-condition-dependent-access.ll
+++ b/test/ScopDetect/non-affine-loop-condition-dependent-access.ll
@@ -1,6 +1,6 @@
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
 ;
 ; Here we have a non-affine loop but also a non-affine access which should
 ; be rejected as long as -polly-allow-nonaffine isn't given.
diff --git a/test/ScopDetect/non-affine-loop-condition-dependent-access_2.ll b/test/ScopDetect/non-affine-loop-condition-dependent-access_2.ll
index c5a3f66..004621d 100644
--- a/test/ScopDetect/non-affine-loop-condition-dependent-access_2.ll
+++ b/test/ScopDetect/non-affine-loop-condition-dependent-access_2.ll
@@ -1,6 +1,6 @@
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
 ;
 ; Here we have a non-affine loop (in the context of the loop nest)
 ; and also a non-affine access (A[k]). While we can always detect the
diff --git a/test/ScopDetect/non-affine-loop-condition-dependent-access_3.ll b/test/ScopDetect/non-affine-loop-condition-dependent-access_3.ll
index 644af88..6cf85c0 100644
--- a/test/ScopDetect/non-affine-loop-condition-dependent-access_3.ll
+++ b/test/ScopDetect/non-affine-loop-condition-dependent-access_3.ll
@@ -1,6 +1,6 @@
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
-; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
+; RUN: opt %loadPolly -basicaa -polly-detect -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
 ;
 ; Here we have a non-affine loop (in the context of the loop nest)
 ; and also a non-affine access (A[k]). While we can always detect the
diff --git a/test/ScopDetect/non-affine-loop.ll b/test/ScopDetect/non-affine-loop.ll
index ad13e3e..ab53c77 100644
--- a/test/ScopDetect/non-affine-loop.ll
+++ b/test/ScopDetect/non-affine-loop.ll
@@ -1,7 +1,7 @@
-; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
-; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
-; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -polly-allow-nonaffine -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
-; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -polly-allow-nonaffine -polly-detect-scops-in-regions-without-loops -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSESANDNOLOOPS
+; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=REJECTNONAFFINELOOPS
+; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPS
+; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-loops=true -polly-allow-nonaffine -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSES
+; RUN: opt %loadPolly -polly-detect -polly-allow-nonaffine-loops=true -polly-allow-nonaffine -polly-detect-scops-in-regions-without-loops -analyze < %s | FileCheck %s --check-prefix=ALLOWNONAFFINELOOPSANDACCESSESANDNOLOOPS
 ;
 ; This function/region does contain a loop, however it is non-affine, hence the access
 ; A[i] is also. Furthermore, it is the only loop, thus when we over approximate
diff --git a/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_1.ll b/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_1.ll
index 3f05fb1..77e14e4 100644
--- a/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_1.ll
+++ b/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_1.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s
 ;
 ; CHECK:    Function: f
 ; CHECK:    Region: %bb1---%bb13
diff --git a/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_2.ll b/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_2.ll
index 57122a9..b11bf4b 100644
--- a/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_2.ll
+++ b/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_2.ll
@@ -1,6 +1,6 @@
-; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=INNERMOST
-; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
-; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
+; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=INNERMOST
+; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
+; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
 ;
 ; Here we have a non-affine loop (in the context of the loop nest)
 ; and also a non-affine access (A[k]). While we can always model the
diff --git a/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_3.ll b/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_3.ll
index b46ab4f..b34ee73 100644
--- a/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_3.ll
+++ b/test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_3.ll
@@ -1,6 +1,6 @@
-; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=INNERMOST
-; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
-; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
+; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-loops=false -analyze < %s | FileCheck %s --check-prefix=INNERMOST
+; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
+; RUN: opt %loadPolly -basicaa -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
 ;
 ; Here we have a non-affine loop (in the context of the loop nest)
 ; and also a non-affine access (A[k]). While we can always model the
diff --git a/test/ScopInfo/NonAffine/non_affine_conditional_nested.ll b/test/ScopInfo/NonAffine/non_affine_conditional_nested.ll
index 1522963..3c29395 100644
--- a/test/ScopInfo/NonAffine/non_affine_conditional_nested.ll
+++ b/test/ScopInfo/NonAffine/non_affine_conditional_nested.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-branches -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
 ;
 ;    void f(int *A) {
 ;      for (int i = 0; i < 1024; i++)
diff --git a/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_affine_loop.ll b/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_affine_loop.ll
index 21f2cee..b24408a 100644
--- a/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_affine_loop.ll
+++ b/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_affine_loop.ll
@@ -1,5 +1,5 @@
-; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
-; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
+; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
+; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
 ;
 ; INNERMOST:    Function: f
 ; INNERMOST:    Region: %bb9---%bb17
diff --git a/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_non_affine_loop.ll b/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_non_affine_loop.ll
index ef44ce0..57a95b7 100644
--- a/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_non_affine_loop.ll
+++ b/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_non_affine_loop.ll
@@ -1,5 +1,5 @@
-; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
-; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
+; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=INNERMOST
+; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine -polly-allow-nonaffine-loops=true -analyze < %s | FileCheck %s --check-prefix=ALL
 ;
 ; INNERMOST:    Function: f
 ; INNERMOST:    Region: %bb9---%bb18
diff --git a/test/ScopInfo/NonAffine/non_affine_float_compare.ll b/test/ScopInfo/NonAffine/non_affine_float_compare.ll
index 7148abf..6a1a3b8 100644
--- a/test/ScopInfo/NonAffine/non_affine_float_compare.ll
+++ b/test/ScopInfo/NonAffine/non_affine_float_compare.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-branches -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
 ;
 ;    void f(float *A) {
 ;      for (int i = 0; i < 1024; i++)
diff --git a/test/ScopInfo/NonAffine/non_affine_loop_condition.ll b/test/ScopInfo/NonAffine/non_affine_loop_condition.ll
index 04d6dee..9d432d6 100644
--- a/test/ScopInfo/NonAffine/non_affine_loop_condition.ll
+++ b/test/ScopInfo/NonAffine/non_affine_loop_condition.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-scops -polly-allow-nonaffine-loops -analyze < %s | FileCheck %s
 ;
 ;    void f(int *A, int *C) {
 ;      for (int i = 0; i < 1024; i++) {
diff --git a/test/ScopInfo/NonAffine/non_affine_loop_used_later.ll b/test/ScopInfo/NonAffine/non_affine_loop_used_later.ll
index 506cb9a..a6f9213 100644
--- a/test/ScopInfo/NonAffine/non_affine_loop_used_later.ll
+++ b/test/ScopInfo/NonAffine/non_affine_loop_used_later.ll
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-scops -polly-model-phi-nodes -disable-polly-intra-scop-scalar-to-array -polly-allow-nonaffine -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-scops -polly-model-phi-nodes -disable-polly-intra-scop-scalar-to-array -polly-allow-nonaffine -polly-allow-nonaffine-loops -analyze < %s | FileCheck %s
 ;
 ; Verify that we over approximate the read acces of A[j] in the last statement as j is
 ; computed in a non-affine loop we do not model.
-- 
2.1.0




More information about the llvm-commits mailing list