Commit a5e5ea0c by Sebastian Pop Committed by Sebastian Pop

remove -floop-unroll-and-jam

	* common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
	* doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
	-floop-nest-optimize.
	* graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
	(generate_luj_sepclass): Remove.
	(generate_luj_options): Remove.
	(set_options): Remove opt_luj.
	(scop_to_isl_ast): Remove opt_luj.
	* graphite-optimize-isl.c (getScheduleForBand): Remove check for
	flag_loop_unroll_jam.
	(getPrevectorMap_full): Remove.
	(getScheduleForBandList): Remove map_sepcl.
	(getScheduleMap): Same.
	(apply_schedule_map_to_scop): Remove sepcl.
	(optimize_isl): Same.
	* graphite-poly.c (apply_poly_transforms): Remove check for
	flag_loop_unroll_jam.
	(new_poly_bb): Remove map_sepclass.
	* graphite-poly.h (struct poly_bb): Same.
	* graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
	* params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
	(PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
	* toplev.c (process_options): Remove flag_loop_unroll_jam.

From-SVN: r227275
parent e994d230
2015-08-27 Sebastian Pop <s.pop@samsung.com>
* common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
* doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
-floop-nest-optimize.
* graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
(generate_luj_sepclass): Remove.
(generate_luj_options): Remove.
(set_options): Remove opt_luj.
(scop_to_isl_ast): Remove opt_luj.
* graphite-optimize-isl.c (getScheduleForBand): Remove check for
flag_loop_unroll_jam.
(getPrevectorMap_full): Remove.
(getScheduleForBandList): Remove map_sepcl.
(getScheduleMap): Same.
(apply_schedule_map_to_scop): Remove sepcl.
(optimize_isl): Same.
* graphite-poly.c (apply_poly_transforms): Remove check for
flag_loop_unroll_jam.
(new_poly_bb): Remove map_sepclass.
* graphite-poly.h (struct poly_bb): Same.
* graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
* params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
(PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
* toplev.c (process_options): Remove flag_loop_unroll_jam.
2015-08-27 Uros Bizjak <ubizjak@gmail.com> 2015-08-27 Uros Bizjak <ubizjak@gmail.com>
PR target/67317 PR target/67317
......
...@@ -1353,8 +1353,8 @@ Common Report Var(flag_loop_block) Optimization ...@@ -1353,8 +1353,8 @@ Common Report Var(flag_loop_block) Optimization
Enable Loop Blocking transformation Enable Loop Blocking transformation
floop-unroll-and-jam floop-unroll-and-jam
Common Report Var(flag_loop_unroll_jam) Optimization Common Alias(floop-nest-optimize)
Enable Loop Unroll Jam transformation Enable loop nest transforms. Same as -floop-nest-optimize
fgnu-tm fgnu-tm
Common Report Var(flag_tm) Common Report Var(flag_tm)
......
...@@ -8849,10 +8849,10 @@ is experimental. ...@@ -8849,10 +8849,10 @@ is experimental.
@item -floop-unroll-and-jam @item -floop-unroll-and-jam
@opindex floop-unroll-and-jam @opindex floop-unroll-and-jam
Enable unroll and jam for the ISL based loop nest optimizer. The unroll Perform loop nest transformations. Same as
factor can be changed using the @option{loop-unroll-jam-size} parameter. @option{-floop-nest-optimize}. To use this code transformation, GCC has
The unrolled dimension (counting from the most inner one) can be changed to be configured with @option{--with-isl} to enable the Graphite loop
using the @option{loop-unroll-jam-depth} parameter. . transformation infrastructure.
@item -floop-parallelize-all @item -floop-parallelize-all
@opindex floop-parallelize-all @opindex floop-parallelize-all
......
...@@ -968,92 +968,6 @@ extend_schedule (__isl_take isl_map *schedule, int nb_schedule_dims) ...@@ -968,92 +968,6 @@ extend_schedule (__isl_take isl_map *schedule, int nb_schedule_dims)
return schedule; return schedule;
} }
/* Set the separation_class option for unroll and jam. */
static __isl_give isl_union_map *
generate_luj_sepclass_opt (scop_p scop, __isl_take isl_union_set *domain,
int dim, int cl)
{
isl_map *map;
isl_space *space, *space_sep;
isl_ctx *ctx;
isl_union_map *mapu;
int nsched = get_max_schedule_dimensions (scop);
ctx = scop->ctx;
space_sep = isl_space_alloc (ctx, 0, 1, 1);
space_sep = isl_space_wrap (space_sep);
space_sep = isl_space_set_tuple_name (space_sep, isl_dim_set,
"separation_class");
space = isl_set_get_space (scop->context);
space_sep = isl_space_align_params (space_sep, isl_space_copy(space));
space = isl_space_map_from_domain_and_range (space, space_sep);
space = isl_space_add_dims (space,isl_dim_in, nsched);
map = isl_map_universe (space);
isl_map_fix_si (map,isl_dim_out,0,dim);
isl_map_fix_si (map,isl_dim_out,1,cl);
mapu = isl_union_map_intersect_domain (isl_union_map_from_map (map),
domain);
return (mapu);
}
/* Compute the separation class for loop unroll and jam. */
static __isl_give isl_union_set *
generate_luj_sepclass (scop_p scop)
{
int i;
poly_bb_p pbb;
isl_union_set *domain_isl;
domain_isl = isl_union_set_empty (isl_set_get_space (scop->context));
FOR_EACH_VEC_ELT (SCOP_BBS (scop), i, pbb)
{
isl_set *bb_domain;
isl_set *bb_domain_s;
if (pbb->map_sepclass == NULL)
continue;
if (isl_set_is_empty (pbb->domain))
continue;
bb_domain = isl_set_copy (pbb->domain);
bb_domain_s = isl_set_apply (bb_domain, pbb->map_sepclass);
pbb->map_sepclass = NULL;
domain_isl =
isl_union_set_union (domain_isl, isl_union_set_from_set (bb_domain_s));
}
return domain_isl;
}
/* Set the AST built options for loop unroll and jam. */
static __isl_give isl_union_map *
generate_luj_options (scop_p scop)
{
isl_union_set *domain_isl;
isl_union_map *options_isl_ss;
isl_union_map *options_isl =
isl_union_map_empty (isl_set_get_space (scop->context));
int dim = get_max_schedule_dimensions (scop) - 1;
int dim1 = dim - PARAM_VALUE (PARAM_LOOP_UNROLL_JAM_DEPTH);
if (!flag_loop_unroll_jam)
return options_isl;
domain_isl = generate_luj_sepclass (scop);
options_isl_ss = generate_luj_sepclass_opt (scop, domain_isl, dim1, 0);
options_isl = isl_union_map_union (options_isl, options_isl_ss);
return options_isl;
}
/* Generates a schedule, which specifies an order used to /* Generates a schedule, which specifies an order used to
visit elements in a domain. */ visit elements in a domain. */
...@@ -1102,13 +1016,11 @@ ast_build_before_for (__isl_keep isl_ast_build *build, void *user) ...@@ -1102,13 +1016,11 @@ ast_build_before_for (__isl_keep isl_ast_build *build, void *user)
} }
/* Set the separate option for all dimensions. /* Set the separate option for all dimensions.
This helps to reduce control overhead. This helps to reduce control overhead. */
Set the options for unroll and jam. */
static __isl_give isl_ast_build * static __isl_give isl_ast_build *
set_options (__isl_take isl_ast_build *control, set_options (__isl_take isl_ast_build *control,
__isl_keep isl_union_map *schedule, __isl_keep isl_union_map *schedule)
__isl_take isl_union_map *opt_luj)
{ {
isl_ctx *ctx = isl_union_map_get_ctx (schedule); isl_ctx *ctx = isl_union_map_get_ctx (schedule);
isl_space *range_space = isl_space_set_alloc (ctx, 0, 1); isl_space *range_space = isl_space_set_alloc (ctx, 0, 1);
...@@ -1119,9 +1031,6 @@ set_options (__isl_take isl_ast_build *control, ...@@ -1119,9 +1031,6 @@ set_options (__isl_take isl_ast_build *control,
isl_union_set *domain = isl_union_map_range (isl_union_map_copy (schedule)); isl_union_set *domain = isl_union_map_range (isl_union_map_copy (schedule));
domain = isl_union_set_universe (domain); domain = isl_union_set_universe (domain);
isl_union_map *options = isl_union_map_from_domain_and_range (domain, range); isl_union_map *options = isl_union_map_from_domain_and_range (domain, range);
options = isl_union_map_union (options, opt_luj);
return isl_ast_build_set_options (control, options); return isl_ast_build_set_options (control, options);
} }
...@@ -1135,14 +1044,9 @@ scop_to_isl_ast (scop_p scop, ivs_params &ip) ...@@ -1135,14 +1044,9 @@ scop_to_isl_ast (scop_p scop, ivs_params &ip)
isl_options_set_ast_build_atomic_upper_bound (scop->ctx, true); isl_options_set_ast_build_atomic_upper_bound (scop->ctx, true);
add_parameters_to_ivs_params (scop, ip); add_parameters_to_ivs_params (scop, ip);
isl_union_map *options_luj = generate_luj_options (scop);
isl_union_map *schedule_isl = generate_isl_schedule (scop); isl_union_map *schedule_isl = generate_isl_schedule (scop);
isl_ast_build *context_isl = generate_isl_context (scop); isl_ast_build *context_isl = generate_isl_context (scop);
context_isl = set_options (context_isl, schedule_isl);
context_isl = set_options (context_isl, schedule_isl, options_luj);
isl_union_map *dependences = NULL; isl_union_map *dependences = NULL;
if (flag_loop_parallelize_all) if (flag_loop_parallelize_all)
{ {
......
...@@ -172,7 +172,7 @@ getScheduleForBand (isl_band *Band, int *Dimensions) ...@@ -172,7 +172,7 @@ getScheduleForBand (isl_band *Band, int *Dimensions)
PartialSchedule = isl_band_get_partial_schedule (Band); PartialSchedule = isl_band_get_partial_schedule (Band);
*Dimensions = isl_band_n_member (Band); *Dimensions = isl_band_n_member (Band);
if (DisableTiling || flag_loop_unroll_jam) if (DisableTiling)
return PartialSchedule; return PartialSchedule;
/* It does not make any sense to tile a band with just one dimension. */ /* It does not make any sense to tile a band with just one dimension. */
...@@ -227,9 +227,7 @@ getScheduleForBand (isl_band *Band, int *Dimensions) ...@@ -227,9 +227,7 @@ getScheduleForBand (isl_band *Band, int *Dimensions)
constant number of iterations, if the number of loop iterations at constant number of iterations, if the number of loop iterations at
DimToVectorize can be devided by VectorWidth. The default VectorWidth is DimToVectorize can be devided by VectorWidth. The default VectorWidth is
currently constant and not yet target specific. This function does not reason currently constant and not yet target specific. This function does not reason
about parallelism. about parallelism. */
*/
static isl_map * static isl_map *
getPrevectorMap (isl_ctx *ctx, int DimToVectorize, getPrevectorMap (isl_ctx *ctx, int DimToVectorize,
int ScheduleDimensions, int ScheduleDimensions,
...@@ -296,109 +294,15 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize, ...@@ -296,109 +294,15 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize,
return TilingMap; return TilingMap;
} }
/* Compute an auxiliary map to getPrevectorMap, for computing the separating
class defined by full tiles. Used in graphite_isl_ast_to_gimple.c to set the
corresponding option for AST build.
The map (for VectorWidth=4):
[i,j] -> [it,j,ip] : it % 4 = 0 and it <= ip <= it + 3 and it + 3 = i and
ip >= 0
The image of this map is the separation class. The range of this map includes
all the i multiple of 4 in the domain such as i + 3 is in the domain too.
*/
static isl_map *
getPrevectorMap_full (isl_ctx *ctx, int DimToVectorize,
int ScheduleDimensions,
int VectorWidth)
{
isl_space *Space;
isl_local_space *LocalSpace, *LocalSpaceRange;
isl_set *Modulo;
isl_map *TilingMap;
isl_constraint *c;
isl_aff *Aff;
int PointDimension; /* ip */
int TileDimension; /* it */
isl_val *VectorWidthMP;
int i;
/* assert (0 <= DimToVectorize && DimToVectorize < ScheduleDimensions);*/
Space = isl_space_alloc (ctx, 0, ScheduleDimensions, ScheduleDimensions + 1);
TilingMap = isl_map_universe (isl_space_copy (Space));
LocalSpace = isl_local_space_from_space (Space);
PointDimension = ScheduleDimensions;
TileDimension = DimToVectorize;
/* Create an identity map for everything except DimToVectorize and the
point loop. */
for (i = 0; i < ScheduleDimensions; i++)
{
if (i == DimToVectorize)
continue;
c = isl_equality_alloc (isl_local_space_copy (LocalSpace));
isl_constraint_set_coefficient_si (c, isl_dim_in, i, -1);
isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1);
TilingMap = isl_map_add_constraint (TilingMap, c);
}
/* it % 'VectorWidth' = 0 */
LocalSpaceRange = isl_local_space_range (isl_local_space_copy (LocalSpace));
Aff = isl_aff_zero_on_domain (LocalSpaceRange);
Aff = isl_aff_set_constant_si (Aff, VectorWidth);
Aff = isl_aff_set_coefficient_si (Aff, isl_dim_in, TileDimension, 1);
VectorWidthMP = isl_val_int_from_si (ctx, VectorWidth);
Aff = isl_aff_mod_val (Aff, VectorWidthMP);
Modulo = isl_pw_aff_zero_set (isl_pw_aff_from_aff (Aff));
TilingMap = isl_map_intersect_range (TilingMap, Modulo);
/* it + ('VectorWidth' - 1) = i0 */
c = isl_equality_alloc (isl_local_space_copy(LocalSpace));
isl_constraint_set_coefficient_si (c, isl_dim_out, TileDimension,-1);
isl_constraint_set_coefficient_si (c, isl_dim_in, TileDimension, 1);
isl_constraint_set_constant_si (c, -VectorWidth + 1);
TilingMap = isl_map_add_constraint (TilingMap, c);
/* ip >= 0 */
c = isl_inequality_alloc (isl_local_space_copy (LocalSpace));
isl_constraint_set_coefficient_si (c, isl_dim_out, PointDimension, 1);
isl_constraint_set_constant_si (c, 0);
TilingMap = isl_map_add_constraint (TilingMap, c);
/* it <= ip */
c = isl_inequality_alloc (isl_local_space_copy (LocalSpace));
isl_constraint_set_coefficient_si (c, isl_dim_out, TileDimension, -1);
isl_constraint_set_coefficient_si (c, isl_dim_out, PointDimension, 1);
TilingMap = isl_map_add_constraint (TilingMap, c);
/* ip <= it + ('VectorWidth' - 1) */
c = isl_inequality_alloc (LocalSpace);
isl_constraint_set_coefficient_si (c, isl_dim_out, TileDimension, 1);
isl_constraint_set_coefficient_si (c, isl_dim_out, PointDimension, -1);
isl_constraint_set_constant_si (c, VectorWidth - 1);
TilingMap = isl_map_add_constraint (TilingMap, c);
return TilingMap;
}
static bool EnablePollyVector = false; static bool EnablePollyVector = false;
/* getScheduleForBandList - Get the scheduling map for a list of bands. /* getScheduleForBandList - Get the scheduling map for a list of bands.
We walk recursively the forest of bands to combine the schedules of the We walk recursively the forest of bands to combine the schedules of the
individual bands to the overall schedule. In case tiling is requested, individual bands to the overall schedule. In case tiling is requested,
the individual bands are tiled. the individual bands are tiled. */
For unroll and jam the map the schedule for full tiles of the unrolled
dimnesion is computed. */
static isl_union_map * static isl_union_map *
getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl) getScheduleForBandList (isl_band_list *BandList)
{ {
int NumBands, i; int NumBands, i;
isl_union_map *Schedule; isl_union_map *Schedule;
...@@ -415,37 +319,25 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl) ...@@ -415,37 +319,25 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl)
int ScheduleDimensions; int ScheduleDimensions;
isl_space *Space; isl_space *Space;
isl_union_map *PartialSchedule_f;
Band = isl_band_list_get_band (BandList, i); Band = isl_band_list_get_band (BandList, i);
PartialSchedule = getScheduleForBand (Band, &ScheduleDimensions); PartialSchedule = getScheduleForBand (Band, &ScheduleDimensions);
Space = isl_union_map_get_space (PartialSchedule); Space = isl_union_map_get_space (PartialSchedule);
PartialSchedule_f = NULL;
if (isl_band_has_children (Band)) if (isl_band_has_children (Band))
{ {
isl_band_list *Children; isl_band_list *Children;
isl_union_map *SuffixSchedule; isl_union_map *SuffixSchedule;
Children = isl_band_get_children (Band); Children = isl_band_get_children (Band);
SuffixSchedule = getScheduleForBandList (Children, map_sepcl); SuffixSchedule = getScheduleForBandList (Children);
PartialSchedule = isl_union_map_flat_range_product (PartialSchedule, PartialSchedule = isl_union_map_flat_range_product (PartialSchedule,
SuffixSchedule); SuffixSchedule);
isl_band_list_free (Children); isl_band_list_free (Children);
} }
else if (EnablePollyVector || flag_loop_unroll_jam) else if (EnablePollyVector)
{ {
int i;
int depth;
depth = PARAM_VALUE (PARAM_LOOP_UNROLL_JAM_DEPTH);
for (i = ScheduleDimensions - 1 ; i >= 0 ; i--) for (i = ScheduleDimensions - 1 ; i >= 0 ; i--)
{ {
if (flag_loop_unroll_jam && (i != (ScheduleDimensions - depth)))
continue;
#ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE #ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE
if (isl_band_member_is_coincident (Band, i)) if (isl_band_member_is_coincident (Band, i))
#else #else
...@@ -454,19 +346,8 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl) ...@@ -454,19 +346,8 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl)
{ {
isl_map *TileMap; isl_map *TileMap;
isl_union_map *TileUMap; isl_union_map *TileUMap;
int stride;
stride = PARAM_VALUE (PARAM_LOOP_UNROLL_JAM_SIZE); TileMap = getPrevectorMap (ctx, i, ScheduleDimensions, 4);
TileMap = getPrevectorMap_full (ctx, i, ScheduleDimensions,
stride);
TileUMap = isl_union_map_from_map (TileMap);
TileUMap = isl_union_map_align_params
(TileUMap, isl_space_copy (Space));
PartialSchedule_f = isl_union_map_apply_range
(isl_union_map_copy (PartialSchedule), TileUMap);
TileMap = getPrevectorMap (ctx, i, ScheduleDimensions, stride);
TileUMap = isl_union_map_from_map (TileMap); TileUMap = isl_union_map_from_map (TileMap);
TileUMap = isl_union_map_align_params TileUMap = isl_union_map_align_params
(TileUMap, isl_space_copy (Space)); (TileUMap, isl_space_copy (Space));
...@@ -476,35 +357,21 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl) ...@@ -476,35 +357,21 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl)
} }
} }
} }
Schedule = isl_union_map_union (Schedule,
isl_union_map_copy(PartialSchedule)); Schedule = isl_union_map_union (Schedule, PartialSchedule);
isl_band_free (Band); isl_band_free (Band);
isl_space_free (Space); isl_space_free (Space);
if (!flag_loop_unroll_jam)
{
isl_union_map_free (PartialSchedule);
continue;
}
if (PartialSchedule_f)
{
*map_sepcl = isl_union_map_union (*map_sepcl, PartialSchedule_f);
isl_union_map_free (PartialSchedule);
}
else
*map_sepcl = isl_union_map_union (*map_sepcl, PartialSchedule);
} }
return Schedule; return Schedule;
} }
static isl_union_map * static isl_union_map *
getScheduleMap (isl_schedule *Schedule, isl_union_map **map_sepcl) getScheduleMap (isl_schedule *Schedule)
{ {
isl_band_list *BandList = isl_schedule_get_band_forest (Schedule); isl_band_list *BandList = isl_schedule_get_band_forest (Schedule);
isl_union_map *ScheduleMap = getScheduleForBandList (BandList, map_sepcl); isl_union_map *ScheduleMap = getScheduleForBandList (BandList);
isl_band_list_free (BandList); isl_band_list_free (BandList);
return ScheduleMap; return ScheduleMap;
} }
...@@ -519,7 +386,7 @@ getSingleMap (__isl_take isl_map *map, void *user) ...@@ -519,7 +386,7 @@ getSingleMap (__isl_take isl_map *map, void *user)
} }
static void static void
apply_schedule_map_to_scop (scop_p scop, isl_union_map *schedule_map, bool sepcl) apply_schedule_map_to_scop (scop_p scop, isl_union_map *schedule_map)
{ {
int i; int i;
poly_bb_p pbb; poly_bb_p pbb;
...@@ -534,15 +401,8 @@ apply_schedule_map_to_scop (scop_p scop, isl_union_map *schedule_map, bool sepcl ...@@ -534,15 +401,8 @@ apply_schedule_map_to_scop (scop_p scop, isl_union_map *schedule_map, bool sepcl
(isl_union_map_copy (schedule_map), (isl_union_map_copy (schedule_map),
isl_union_set_from_set (domain)); isl_union_set_from_set (domain));
isl_union_map_foreach_map (stmtBand, getSingleMap, &stmtSchedule); isl_union_map_foreach_map (stmtBand, getSingleMap, &stmtSchedule);
isl_map_free (pbb->transformed);
if (!sepcl) pbb->transformed = stmtSchedule;
{
isl_map_free (pbb->transformed);
pbb->transformed = stmtSchedule;
}
else
pbb->map_sepclass = stmtSchedule;
isl_union_map_free (stmtBand); isl_union_map_free (stmtBand);
} }
} }
...@@ -560,7 +420,6 @@ optimize_isl (scop_p scop) ...@@ -560,7 +420,6 @@ optimize_isl (scop_p scop)
isl_union_set *domain; isl_union_set *domain;
isl_union_map *validity, *proximity, *dependences; isl_union_map *validity, *proximity, *dependences;
isl_union_map *schedule_map; isl_union_map *schedule_map;
isl_union_map *schedule_map_f;
domain = scop_get_domains (scop); domain = scop_get_domains (scop);
dependences = scop_get_dependences (scop); dependences = scop_get_dependences (scop);
...@@ -605,13 +464,9 @@ optimize_isl (scop_p scop) ...@@ -605,13 +464,9 @@ optimize_isl (scop_p scop)
if (!schedule) if (!schedule)
return false; return false;
schedule_map_f = isl_union_map_empty (isl_space_params_alloc (scop->ctx, 0)); schedule_map = getScheduleMap (schedule);
schedule_map = getScheduleMap (schedule, &schedule_map_f);
apply_schedule_map_to_scop (scop, schedule_map, false); apply_schedule_map_to_scop (scop, schedule_map);
if (!isl_union_map_is_empty (schedule_map_f))
apply_schedule_map_to_scop (scop, schedule_map_f, true);
isl_union_map_free (schedule_map_f);
isl_schedule_free (schedule); isl_schedule_free (schedule);
isl_union_map_free (schedule_map); isl_union_map_free (schedule_map);
......
...@@ -258,7 +258,7 @@ apply_poly_transforms (scop_p scop) ...@@ -258,7 +258,7 @@ apply_poly_transforms (scop_p scop)
/* This pass needs to be run at the final stage, as it does not /* This pass needs to be run at the final stage, as it does not
update the lst. */ update the lst. */
if (flag_loop_optimize_isl || flag_loop_unroll_jam) if (flag_loop_optimize_isl)
transform_done |= optimize_isl (scop); transform_done |= optimize_isl (scop);
return transform_done; return transform_done;
...@@ -309,7 +309,6 @@ new_poly_bb (scop_p scop, void *black_box) ...@@ -309,7 +309,6 @@ new_poly_bb (scop_p scop, void *black_box)
pbb->schedule = NULL; pbb->schedule = NULL;
pbb->transformed = NULL; pbb->transformed = NULL;
pbb->saved = NULL; pbb->saved = NULL;
pbb->map_sepclass = NULL;
PBB_SCOP (pbb) = scop; PBB_SCOP (pbb) = scop;
pbb_set_black_box (pbb, black_box); pbb_set_black_box (pbb, black_box);
PBB_TRANSFORMED (pbb) = NULL; PBB_TRANSFORMED (pbb) = NULL;
......
...@@ -356,9 +356,6 @@ struct poly_bb ...@@ -356,9 +356,6 @@ struct poly_bb
poly_scattering_p _saved; poly_scattering_p _saved;
isl_map *saved; isl_map *saved;
/* For tiling, the map for computing the separating class. */
isl_map *map_sepclass;
/* True when this PBB contains only a reduction statement. */ /* True when this PBB contains only a reduction statement. */
bool is_reduction; bool is_reduction;
}; };
......
...@@ -331,8 +331,7 @@ gate_graphite_transforms (void) ...@@ -331,8 +331,7 @@ gate_graphite_transforms (void)
|| flag_loop_strip_mine || flag_loop_strip_mine
|| flag_graphite_identity || flag_graphite_identity
|| flag_loop_parallelize_all || flag_loop_parallelize_all
|| flag_loop_optimize_isl || flag_loop_optimize_isl)
|| flag_loop_unroll_jam)
flag_graphite = 1; flag_graphite = 1;
return flag_graphite != 0; return flag_graphite != 0;
......
...@@ -830,21 +830,6 @@ DEFPARAM (PARAM_LOOP_BLOCK_TILE_SIZE, ...@@ -830,21 +830,6 @@ DEFPARAM (PARAM_LOOP_BLOCK_TILE_SIZE,
"size of tiles for loop blocking", "size of tiles for loop blocking",
51, 0, 0) 51, 0, 0)
/* Size of unrolling factor for unroll-and-jam. */
DEFPARAM (PARAM_LOOP_UNROLL_JAM_SIZE,
"loop-unroll-jam-size",
"size of unrolling factor for unroll-and-jam",
4, 0, 0)
/* Size of the band formed by the strip mined dimension and the most inner one for unroll-and-jam. */
DEFPARAM (PARAM_LOOP_UNROLL_JAM_DEPTH,
"loop-unroll-jam-depth",
"depth of unrolled loop for unroll-and-jam",
2, 0, 0)
/* Maximal number of parameters that we allow in a SCoP. */ /* Maximal number of parameters that we allow in a SCoP. */
DEFPARAM (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS, DEFPARAM (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS,
......
...@@ -1320,8 +1320,7 @@ process_options (void) ...@@ -1320,8 +1320,7 @@ process_options (void)
|| flag_loop_block || flag_loop_block
|| flag_loop_interchange || flag_loop_interchange
|| flag_loop_strip_mine || flag_loop_strip_mine
|| flag_loop_parallelize_all || flag_loop_parallelize_all)
|| flag_loop_unroll_jam)
sorry ("Graphite loop optimizations cannot be used (ISL is not available)" sorry ("Graphite loop optimizations cannot be used (ISL is not available)"
"(-fgraphite, -fgraphite-identity, -floop-block, " "(-fgraphite, -fgraphite-identity, -floop-block, "
"-floop-interchange, -floop-strip-mine, -floop-parallelize-all, " "-floop-interchange, -floop-strip-mine, -floop-parallelize-all, "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment