remove -floop-unroll-and-jam
authorSebastian Pop <s.pop@samsung.com>
Thu, 27 Aug 2015 19:06:56 +0000 (19:06 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Thu, 27 Aug 2015 19:06:56 +0000 (19:06 +0000)
* 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

gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/graphite-isl-ast-to-gimple.c
gcc/graphite-optimize-isl.c
gcc/graphite-poly.c
gcc/graphite-poly.h
gcc/graphite.c
gcc/params.def
gcc/toplev.c

index 854add5fb7a0e575de315d6a3805c002487b81ab..e776c16d5b76953459c96cff2d02b564ec361d51 100644 (file)
@@ -1,3 +1,29 @@
+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>
 
        PR target/67317
index 4dcd51807af5edb4b3e43874a7cfcb2a1e41cd24..0964ae4fdaeeb6e9bd0a7ba1e7a4a2738d1f9a80 100644 (file)
@@ -1353,8 +1353,8 @@ Common Report Var(flag_loop_block) Optimization
 Enable Loop Blocking transformation
 
 floop-unroll-and-jam
-Common Report Var(flag_loop_unroll_jam) Optimization
-Enable Loop Unroll Jam transformation
+Common Alias(floop-nest-optimize)
+Enable loop nest transforms.  Same as -floop-nest-optimize
  
 fgnu-tm
 Common Report Var(flag_tm)
index f990befd55762637e0610df192ca3ec701edfa92..01423bb1e3dfe44ed3212ea1d6abe19c5a88a8be 100644 (file)
@@ -8849,10 +8849,10 @@ is experimental.
 
 @item -floop-unroll-and-jam
 @opindex floop-unroll-and-jam
-Enable unroll and jam for the ISL based loop nest optimizer.  The unroll 
-factor can be changed using the @option{loop-unroll-jam-size} parameter.
-The unrolled dimension (counting from the most inner one) can be changed 
-using the @option{loop-unroll-jam-depth} parameter.                 .
+Perform loop nest transformations.  Same as
+@option{-floop-nest-optimize}.  To use this code transformation, GCC has
+to be configured with @option{--with-isl} to enable the Graphite loop
+transformation infrastructure.
 
 @item -floop-parallelize-all
 @opindex floop-parallelize-all
index dfb012f75b18636fb5aca86b4b738f2bd958cca2..5434bfdeb6fb7247e78bbc4eb4882c0cccd54999 100644 (file)
@@ -968,92 +968,6 @@ extend_schedule (__isl_take isl_map *schedule, int nb_schedule_dims)
   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
    visit elements in a domain.  */
 
@@ -1102,13 +1016,11 @@ ast_build_before_for (__isl_keep isl_ast_build *build, void *user)
 }
 
 /* Set the separate option for all dimensions.
-   This helps to reduce control overhead.
-   Set the options for unroll and jam.  */
+   This helps to reduce control overhead.  */
 
 static __isl_give isl_ast_build *
 set_options (__isl_take isl_ast_build *control,
-            __isl_keep isl_union_map *schedule,
-            __isl_take isl_union_map *opt_luj)
+            __isl_keep isl_union_map *schedule)
 {
   isl_ctx *ctx = isl_union_map_get_ctx (schedule);
   isl_space *range_space = isl_space_set_alloc (ctx, 0, 1);
@@ -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));
   domain = isl_union_set_universe (domain);
   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);
 }
 
@@ -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);
 
   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_ast_build *context_isl = generate_isl_context (scop);
-
-  context_isl = set_options (context_isl, schedule_isl, options_luj);
-
+  context_isl = set_options (context_isl, schedule_isl);
   isl_union_map *dependences = NULL;
   if (flag_loop_parallelize_all)
   {
index 1b57c6cc6d23c57859b30061547fa4b4c7c70d16..470dbfa4aaec4b64cb58abffb9ff11d6c779a60c 100644 (file)
@@ -172,7 +172,7 @@ getScheduleForBand (isl_band *Band, int *Dimensions)
   PartialSchedule = isl_band_get_partial_schedule (Band);
   *Dimensions = isl_band_n_member (Band);
 
-  if (DisableTiling || flag_loop_unroll_jam)
+  if (DisableTiling)
     return PartialSchedule;
 
   /* It does not make any sense to tile a band with just one dimension.  */
@@ -227,9 +227,7 @@ getScheduleForBand (isl_band *Band, int *Dimensions)
    constant number of iterations, if the number of loop iterations at
    DimToVectorize can be devided by VectorWidth. The default VectorWidth is
    currently constant and not yet target specific. This function does not reason
-   about parallelism.
-
-  */
+   about parallelism.  */
 static isl_map *
 getPrevectorMap (isl_ctx *ctx, int DimToVectorize,
                 int ScheduleDimensions,
@@ -296,109 +294,15 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize,
   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;
 
 /* getScheduleForBandList - Get the scheduling map for a list of bands.
-    
+
    We walk recursively the forest of bands to combine the schedules of the
    individual bands to the overall schedule. In case tiling is requested,
-   the individual bands are tiled.
-   For unroll and jam the map the schedule for full tiles of the unrolled
-   dimnesion is computed.  */
+   the individual bands are tiled.  */
 static isl_union_map *
-getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl)
+getScheduleForBandList (isl_band_list *BandList)
 {
   int NumBands, i;
   isl_union_map *Schedule;
@@ -415,37 +319,25 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl)
       int ScheduleDimensions;
       isl_space *Space;
 
-      isl_union_map *PartialSchedule_f;
-
       Band = isl_band_list_get_band (BandList, i);
       PartialSchedule = getScheduleForBand (Band, &ScheduleDimensions);
       Space = isl_union_map_get_space (PartialSchedule);
 
-      PartialSchedule_f = NULL;
-
       if (isl_band_has_children (Band))
        {
          isl_band_list *Children;
          isl_union_map *SuffixSchedule;
 
          Children = isl_band_get_children (Band);
-         SuffixSchedule = getScheduleForBandList (Children, map_sepcl);
+         SuffixSchedule = getScheduleForBandList (Children);
          PartialSchedule = isl_union_map_flat_range_product (PartialSchedule,
                                                              SuffixSchedule);
          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--)
            {
-             if (flag_loop_unroll_jam && (i != (ScheduleDimensions - depth)))
-               continue;
-
 #ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE
              if (isl_band_member_is_coincident (Band, i))
 #else
@@ -454,19 +346,8 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl)
                {
                  isl_map *TileMap;
                  isl_union_map *TileUMap;
-                 int stride;
 
-                  stride = PARAM_VALUE (PARAM_LOOP_UNROLL_JAM_SIZE);    
-
-                 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);
+                 TileMap = getPrevectorMap (ctx, i, ScheduleDimensions, 4);
                  TileUMap = isl_union_map_from_map (TileMap);
                  TileUMap = isl_union_map_align_params
                    (TileUMap, isl_space_copy (Space));
@@ -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_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;
 }
 
 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_union_map *ScheduleMap = getScheduleForBandList (BandList, map_sepcl);
+  isl_union_map *ScheduleMap = getScheduleForBandList (BandList);
   isl_band_list_free (BandList);
   return ScheduleMap;
 }
@@ -519,7 +386,7 @@ getSingleMap (__isl_take isl_map *map, void *user)
 }
 
 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;
   poly_bb_p pbb;
@@ -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_set_from_set (domain));
       isl_union_map_foreach_map (stmtBand, getSingleMap, &stmtSchedule);
-
-      if (!sepcl)
-       {
-         isl_map_free (pbb->transformed);
-         pbb->transformed = stmtSchedule;
-       }
-      else
-         pbb->map_sepclass = stmtSchedule;
-
+      isl_map_free (pbb->transformed);
+      pbb->transformed = stmtSchedule;
       isl_union_map_free (stmtBand);
     }
 }
@@ -560,7 +420,6 @@ optimize_isl (scop_p scop)
   isl_union_set *domain;
   isl_union_map *validity, *proximity, *dependences;
   isl_union_map *schedule_map;
-  isl_union_map *schedule_map_f;
 
   domain = scop_get_domains (scop);
   dependences = scop_get_dependences (scop);
@@ -605,13 +464,9 @@ optimize_isl (scop_p scop)
   if (!schedule)
     return false;
 
-  schedule_map_f = isl_union_map_empty (isl_space_params_alloc (scop->ctx, 0));
-  schedule_map = getScheduleMap (schedule, &schedule_map_f);
+  schedule_map = getScheduleMap (schedule);
 
-  apply_schedule_map_to_scop (scop, schedule_map, false);
-  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);
+  apply_schedule_map_to_scop (scop, schedule_map);
 
   isl_schedule_free (schedule);
   isl_union_map_free (schedule_map);
index 78b5d121fa2536ce91c37b7525bd80563b040f20..7ea938966c9ae50ec953aa443c23b0bec32fbd19 100644 (file)
@@ -258,7 +258,7 @@ apply_poly_transforms (scop_p scop)
 
   /* This pass needs to be run at the final stage, as it does not
      update the lst.  */
-  if (flag_loop_optimize_isl || flag_loop_unroll_jam)
+  if (flag_loop_optimize_isl)
     transform_done |= optimize_isl (scop);
 
   return transform_done;
@@ -309,7 +309,6 @@ new_poly_bb (scop_p scop, void *black_box)
   pbb->schedule = NULL;
   pbb->transformed = NULL;
   pbb->saved = NULL;
-  pbb->map_sepclass = NULL;
   PBB_SCOP (pbb) = scop;
   pbb_set_black_box (pbb, black_box);
   PBB_TRANSFORMED (pbb) = NULL;
index 4ca5d1f8694e2647dd97123febf6d07dc3894df4..29813e0a6ec9d55dd24781abc7b66b96aad1c7c0 100644 (file)
@@ -356,9 +356,6 @@ struct poly_bb
   poly_scattering_p _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.  */
   bool is_reduction;
 };
index 9b9ab887287037ece955ab51c1b992f6eed1cb16..4acc172b0afe50d18c93102890394205ebc56e1e 100644 (file)
@@ -331,8 +331,7 @@ gate_graphite_transforms (void)
       || flag_loop_strip_mine
       || flag_graphite_identity
       || flag_loop_parallelize_all
-      || flag_loop_optimize_isl
-      || flag_loop_unroll_jam)
+      || flag_loop_optimize_isl)
     flag_graphite = 1;
 
   return flag_graphite != 0;
index 1f6e40eee4129f314a83326ea5b7a8856960c997..c8b3a90e2068ee2ff54587bacf154127573fa32b 100644 (file)
@@ -830,21 +830,6 @@ DEFPARAM (PARAM_LOOP_BLOCK_TILE_SIZE,
          "size of tiles for loop blocking",
          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.  */
 
 DEFPARAM (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS,
index 0d9ec15384968641cd2c5c45423a6233e1634992..39967d0b298c38edcaae92e408d401bfaa9101fa 100644 (file)
@@ -1320,8 +1320,7 @@ process_options (void)
       || flag_loop_block
       || flag_loop_interchange
       || flag_loop_strip_mine
-      || flag_loop_parallelize_all
-      || flag_loop_unroll_jam)
+      || flag_loop_parallelize_all)
     sorry ("Graphite loop optimizations cannot be used (ISL is not available)" 
           "(-fgraphite, -fgraphite-identity, -floop-block, "
           "-floop-interchange, -floop-strip-mine, -floop-parallelize-all, "