diff options
Diffstat (limited to 'polly/lib/External/isl/isl_test.c')
-rw-r--r-- | polly/lib/External/isl/isl_test.c | 38 |
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 }, |