[polly] r252795 - ScopInfo: Bailing out means assigning isl_set_empty to the AssumedContext

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 11 12:21:39 PST 2015


Author: grosser
Date: Wed Nov 11 14:21:39 2015
New Revision: 252795

URL: http://llvm.org/viewvc/llvm-project?rev=252795&view=rev
Log:
ScopInfo: Bailing out means assigning isl_set_empty to the AssumedContext

I got this the other way around in 252750. Thank you Johannes for noticing.

Modified:
    polly/trunk/lib/Analysis/ScopInfo.cpp
    polly/trunk/test/ScopInfo/long-sequence-of-error-blocks-2.ll

Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=252795&r1=252794&r2=252795&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Wed Nov 11 14:21:39 2015
@@ -2882,7 +2882,7 @@ void Scop::addAssumption(__isl_take isl_
   if (NSets >= MaxDisjunctsAssumed) {
     isl_space *Space = isl_set_get_space(AssumedContext);
     isl_set_free(AssumedContext);
-    AssumedContext = isl_set_universe(Space);
+    AssumedContext = isl_set_empty(Space);
   }
 
   AssumedContext = isl_set_coalesce(AssumedContext);

Modified: polly/trunk/test/ScopInfo/long-sequence-of-error-blocks-2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/long-sequence-of-error-blocks-2.ll?rev=252795&r1=252794&r2=252795&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/long-sequence-of-error-blocks-2.ll (original)
+++ polly/trunk/test/ScopInfo/long-sequence-of-error-blocks-2.ll Wed Nov 11 14:21:39 2015
@@ -5,88 +5,12 @@ target triple = "x86_64-unknown-linux-gn
 
 %struct.hoge = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [8 x [2 x i32]], [8 x [2 x i32]], [4 x [4 x i32]], i32, i32, i32, i32, [256 x i8], [256 x i8], [256 x i8], [256 x i8], [256 x i8], i32, i32, i32, i32, i32, i32, [500 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [256 x i8], [256 x i8], [256 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [1024 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [256 x i8], [256 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [256 x i8], i32, i32, i32*, i32*, i8*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, [5
  x double], i32, [8 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [6 x double], [6 x double], [256 x i8], i32, i32, i32, i32, [2 x [5 x i32]], [2 x [5 x i32]], i32, i32, i32, i32, i32, i32, i32, i32, i32, [3 x i32], i32 }
 
-; The assumed context of this test case is still very large and should be
-; reduced.
-
-; CHECK: Assumed Context:
-; CHECK-NEXT: [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { : }
-
-; This test case contains a long sequence of branch instructions together with
-; function calls that are considered 'error blocks'. We verify that the
-; iteration spaces are not overly complicated.
-
-; CHECK: Statements {
-; CHECK:   Stmt_bb15
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb15[] };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb15[] -> [0] };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb15[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb19
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb19[] : tmp17 <= -1 or tmp17 >= 1 };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb19[] -> [1] : tmp17 <= -1 or tmp17 >= 1 };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb19[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb24
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb24[] };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb24[] -> [2] };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb24[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb29
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb29[] : tmp27 = 3 };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb29[] -> [3] };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb29[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb34
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb34[] };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb34[] -> [4] };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb34[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb39
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb39[] : tmp37 <= -1 or tmp37 >= 1 };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb39[] -> [5] : tmp37 <= -1 or tmp37 >= 1 };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb39[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb43
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb43[] : (tmp37 <= -1 and tmp41 <= -1) or (tmp37 <= -1 and tmp41 >= 1) or (tmp37 >= 1 and tmp41 <= -1) or (tmp37 >= 1 and tmp41 >= 1) };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb43[] -> [6] : (tmp37 <= -1 and tmp41 <= -1) or (tmp37 <= -1 and tmp41 >= 1) or (tmp37 >= 1 and tmp41 <= -1) or (tmp37 >= 1 and tmp41 >= 1) };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb43[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb49
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb49[] };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb49[] -> [7] };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb49[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb54
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb54[] : tmp52 <= -1 or tmp52 >= 1 };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb54[] -> [8] : tmp52 <= -1 or tmp52 >= 1 };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb54[] -> MemRef_A[0] };
-; CHECK:   Stmt_bb59
-; CHECK:         Domain :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb59[] : tmp52 <= -1 or tmp52 >= 0 };
-; CHECK:         Schedule :=
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb59[] -> [9] };
-; CHECK:         MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
-; CHECK:             [tmp17, tmp21, tmp27, tmp31, tmp37, tmp41, tmp46, tmp52, tmp56, tmp62] -> { Stmt_bb59[] -> MemRef_A[0] };
+; The assumed context of this test case has at some point become very complex.
+; This test case verifies that we bail out and generate an infeasible
+; assumed context. It should be updated after having made the assumed context
+; construction more efficient.
 
+; CHECK-NOT: Assumed Context:
 
 
 @global = external global [300 x i8], align 16




More information about the llvm-commits mailing list