summaryrefslogtreecommitdiffstats
path: root/polly/lib/External/isl/isl_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/External/isl/isl_test.c')
-rw-r--r--polly/lib/External/isl/isl_test.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/polly/lib/External/isl/isl_test.c b/polly/lib/External/isl/isl_test.c
index a7d6c9ba42f..e791fa27ac0 100644
--- a/polly/lib/External/isl/isl_test.c
+++ b/polly/lib/External/isl/isl_test.c
@@ -2896,6 +2896,7 @@ struct {
"4e0 >= 58 + i0 - i1 and i0 >= 2 and i0 <= 511 and "
"4e0 >= -61 + i0 + i1)) or "
"(i1 <= 66 - i0 and i0 >= 2 and i1 >= 59 + i0) }", 1 },
+ { "[a, b] -> { : a = 0 and b = -1 }", "[b, a] -> { : b >= -10 }", 1 },
};
static int test_subset(isl_ctx *ctx)
@@ -3621,6 +3622,7 @@ static int test_bounded_coefficients_schedule(isl_ctx *ctx)
int test_schedule(isl_ctx *ctx)
{
const char *D, *W, *R, *V, *P, *S;
+ int max_coincidence;
/* Handle resulting schedule with zero bands. */
if (test_one_schedule(ctx, "{[]}", "{}", "{}", "{[] -> []}", 0, 0) < 0)
@@ -3710,8 +3712,11 @@ int test_schedule(isl_ctx *ctx)
"S4[i] -> a[i,N] }";
S = "{ S1[i] -> [0,i,0]; S2[i] -> [1,i,0]; S3[i,j] -> [2,i,j]; "
"S4[i] -> [4,i,0] }";
+ max_coincidence = isl_options_get_schedule_maximize_coincidence(ctx);
+ isl_options_set_schedule_maximize_coincidence(ctx, 0);
if (test_one_schedule(ctx, D, W, R, S, 2, 0) < 0)
return -1;
+ isl_options_set_schedule_maximize_coincidence(ctx, max_coincidence);
D = "[N] -> { S_0[i, j] : i >= 1 and i <= N and j >= 1 and j <= N }";
W = "[N] -> { S_0[i, j] -> s[0] : i >= 1 and i <= N and j >= 1 and "
@@ -3922,6 +3927,36 @@ int test_schedule(isl_ctx *ctx)
return 0;
}
+/* Perform scheduling tests using the whole component scheduler.
+ */
+static int test_schedule_whole(isl_ctx *ctx)
+{
+ int whole;
+ int r;
+
+ whole = isl_options_get_schedule_whole_component(ctx);
+ isl_options_set_schedule_whole_component(ctx, 1);
+ r = test_schedule(ctx);
+ isl_options_set_schedule_whole_component(ctx, whole);
+
+ return r;
+}
+
+/* Perform scheduling tests using the incremental scheduler.
+ */
+static int test_schedule_incremental(isl_ctx *ctx)
+{
+ int whole;
+ int r;
+
+ whole = isl_options_get_schedule_whole_component(ctx);
+ isl_options_set_schedule_whole_component(ctx, 0);
+ r = test_schedule(ctx);
+ isl_options_set_schedule_whole_component(ctx, whole);
+
+ return r;
+}
+
int test_plain_injective(isl_ctx *ctx, const char *str, int injective)
{
isl_union_map *umap;
@@ -6248,7 +6283,8 @@ struct {
{ "dim_max", &test_dim_max },
{ "affine", &test_aff },
{ "injective", &test_injective },
- { "schedule", &test_schedule },
+ { "schedule (whole component)", &test_schedule_whole },
+ { "schedule (incremental)", &test_schedule_incremental },
{ "schedule tree grouping", &test_schedule_tree_group },
{ "tile", &test_tile },
{ "union_pw", &test_union_pw },
OpenPOWER on IntegriCloud