export schedule_split_parallel option
authorSven van Haastregt <svhaastr@liacs.nl>
Mon, 12 Dec 2011 10:45:17 +0000 (11:45 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Mon, 12 Dec 2011 11:10:08 +0000 (12:10 +0100)
Signed-off-by: Sven van Haastregt <svhaastr@liacs.nl>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/schedule.h
isl_options.c

index 3a9afa7..dbed4a2 100644 (file)
@@ -4132,6 +4132,11 @@ A representation of the band can be printed using
                isl_ctx *ctx, int val);
        int isl_options_get_schedule_outer_zero_distance(
                isl_ctx *ctx);
+       int isl_options_set_schedule_split_parallel(
+               isl_ctx *ctx, int val);
+       int isl_options_get_schedule_split_parallel(
+               isl_ctx *ctx);
+
 
 =over
 
@@ -4142,6 +4147,14 @@ where the outermost scheduling dimension in each band
 results in a zero dependence distance over the proximity
 dependences.
 
+=item * schedule_split_parallel
+
+If this option is set, then we try to construct schedules in which the
+constant term is split off from the linear part if the linear parts of
+the scheduling rows for all nodes in the graphs are the same.
+The constant term is then placed in a separate band and the linear
+part is simplified.
+
 =back
 
 =head2 Parametric Vertex Enumeration
index bbac080..ba42256 100644 (file)
@@ -15,6 +15,9 @@ typedef struct isl_schedule isl_schedule;
 int isl_options_set_schedule_outer_zero_distance(isl_ctx *ctx, int val);
 int isl_options_get_schedule_outer_zero_distance(isl_ctx *ctx);
 
+int isl_options_set_schedule_split_parallel(isl_ctx *ctx, int val);
+int isl_options_get_schedule_split_parallel(isl_ctx *ctx);
+
 __isl_give isl_schedule *isl_union_set_compute_schedule(
        __isl_take isl_union_set *domain,
        __isl_take isl_union_map *validity,
index 6301772..f4b09e8 100644 (file)
@@ -157,6 +157,11 @@ ISL_CTX_GET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
        gbr_only_first)
 
 ISL_CTX_SET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
+       schedule_split_parallel)
+ISL_CTX_GET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
+       schedule_split_parallel)
+
+ISL_CTX_SET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
        schedule_outer_zero_distance)
 ISL_CTX_GET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
        schedule_outer_zero_distance)