Commit d37fc3aa by Aditya Kumar Committed by Sebastian Pop

Refactoring sese.h and graphite-poly.h

Rename scop->region to scop->scop_info
Removed conversion constructors for sese_l and dr_info.
Removed macros.

No functional changed intended. Passes regtest and bootstrap.

gcc/ChangeLog:

2015-19-10  Aditya Kumar  <aditya.k7@samsung.com>
        * graphite-poly.h (struct dr_info): Removed conversion constructor.
        (struct scop): Renamed scop::region to scop::scop_info
        (scop_set_region): Same.
        (SCOP_REGION): Removed
        (SCOP_CONTEXT): Removed.
        (POLY_SCOP_P): Removed.
        * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
        Rename scop->region to scop->scop_info.
        (add_parameters_to_ivs_params): Same.
        (graphite_regenerate_ast_isl): Same.
        * graphite-poly.c (new_scop): Same.
        (free_scop): Same.
        (print_scop_params): Same.
        * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
        (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
        (dot_all_scops_1): Rename scop->region to scop->scop_info.
        (scop_detection::nb_pbbs_in_loops): Same.
        (find_scop_parameters): Same.
        (try_generate_gimple_bb): Same.
        (gather_bbs::before_dom_children): Same.
        (gather_bbs::after_dom_children): Same.
        (build_scops): Same.
        * graphite-sese-to-poly.c (build_scop_scattering): Same.
        (extract_affine_chrec): Same.
        (extract_affine): Same.
        (set_scop_parameter_dim): Same.
        (build_loop_iteration_domains): Same.
        (create_pw_aff_from_tree): Same.
        (add_param_constraints): Same.
        (build_scop_iteration_domain): Same.
        (build_scop_drs): Same.
        (analyze_drs_in_stmts): Same.
        (insert_out_of_ssa_copy_on_edge): Same.
        (rewrite_close_phi_out_of_ssa):Same.
        (rewrite_reductions_out_of_ssa):Same.
        (handle_scalar_deps_crossing_scop_limits):Same.
        (rewrite_cross_bb_scalar_deps):Same.
        (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
        (build_poly_scop):Same.
        (build_alias_set): Use pointer to dr_info.
        * graphite.c (print_graphite_scop_statistics):
        (graphite_transform_loops):
        * sese.h (struct sese_l): Remove conversion constructor.

From-SVN: r229135
parent 3d27a323
2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
* graphite-poly.h (struct dr_info): Removed conversion constructor.
(struct scop): Renamed scop::region to scop::scop_info
(scop_set_region): Same.
(SCOP_REGION): Removed
(SCOP_CONTEXT): Removed.
(POLY_SCOP_P): Removed.
* graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
Rename scop->region to scop->scop_info.
(add_parameters_to_ivs_params): Same.
(graphite_regenerate_ast_isl): Same.
* graphite-poly.c (new_scop): Same.
(free_scop): Same.
(print_scop_params): Same.
* graphite-scop-detection.c (scop_detection::remove_subscops): Same.
(scop_detection::remove_intersecting_scops): Use pointer to sese_l.
(dot_all_scops_1): Rename scop->region to scop->scop_info.
(scop_detection::nb_pbbs_in_loops): Same.
(find_scop_parameters): Same.
(try_generate_gimple_bb): Same.
(gather_bbs::before_dom_children): Same.
(gather_bbs::after_dom_children): Same.
(build_scops): Same.
* graphite-sese-to-poly.c (build_scop_scattering): Same.
(extract_affine_chrec): Same.
(extract_affine): Same.
(set_scop_parameter_dim): Same.
(build_loop_iteration_domains): Same.
(create_pw_aff_from_tree): Same.
(add_param_constraints): Same.
(build_scop_iteration_domain): Same.
(build_scop_drs): Same.
(analyze_drs_in_stmts): Same.
(insert_out_of_ssa_copy_on_edge): Same.
(rewrite_close_phi_out_of_ssa):Same.
(rewrite_reductions_out_of_ssa):Same.
(handle_scalar_deps_crossing_scop_limits):Same.
(rewrite_cross_bb_scalar_deps):Same.
(rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
(build_poly_scop):Same.
(build_alias_set): Use pointer to dr_info.
* graphite.c (print_graphite_scop_statistics):
(graphite_transform_loops):
* sese.h (struct sese_l): Remove conversion constructor.
2015-10-11 Jan Hubicka <hubicka@ucw.cz> 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
PR middle-end/67966 PR middle-end/67966
...@@ -786,10 +786,10 @@ translate_isl_ast_node_user (__isl_keep isl_ast_node *node, ...@@ -786,10 +786,10 @@ translate_isl_ast_node_user (__isl_keep isl_ast_node *node,
iv_map.create (nb_loops); iv_map.create (nb_loops);
iv_map.safe_grow_cleared (nb_loops); iv_map.safe_grow_cleared (nb_loops);
build_iv_mapping (iv_map, gbb, user_expr, ip, pbb->scop->region->region); build_iv_mapping (iv_map, gbb, user_expr, ip, pbb->scop->scop_info->region);
isl_ast_expr_free (user_expr); isl_ast_expr_free (user_expr);
next_e = copy_bb_and_scalar_dependences (GBB_BB (gbb), next_e = copy_bb_and_scalar_dependences (GBB_BB (gbb),
pbb->scop->region, next_e, pbb->scop->scop_info, next_e,
iv_map, iv_map,
&graphite_regenerate_error); &graphite_regenerate_error);
iv_map.release (); iv_map.release ();
...@@ -909,7 +909,7 @@ print_isl_ast_node (FILE *file, __isl_keep isl_ast_node *node, ...@@ -909,7 +909,7 @@ print_isl_ast_node (FILE *file, __isl_keep isl_ast_node *node,
static void static void
add_parameters_to_ivs_params (scop_p scop, ivs_params &ip) add_parameters_to_ivs_params (scop_p scop, ivs_params &ip)
{ {
sese_info_p region = scop->region; sese_info_p region = scop->scop_info;
unsigned nb_parameters = isl_set_dim (scop->param_context, isl_dim_param); unsigned nb_parameters = isl_set_dim (scop->param_context, isl_dim_param);
gcc_assert (nb_parameters == SESE_PARAMS (region).length ()); gcc_assert (nb_parameters == SESE_PARAMS (region).length ());
unsigned i; unsigned i;
...@@ -1144,7 +1144,7 @@ bool ...@@ -1144,7 +1144,7 @@ bool
graphite_regenerate_ast_isl (scop_p scop) graphite_regenerate_ast_isl (scop_p scop)
{ {
loop_p context_loop; loop_p context_loop;
sese_info_p region = scop->region; sese_info_p region = scop->scop_info;
ifsese if_region = NULL; ifsese if_region = NULL;
isl_ast_node *root_node; isl_ast_node *root_node;
ivs_params ip; ivs_params ip;
......
...@@ -306,7 +306,7 @@ new_scop (edge entry, edge exit) ...@@ -306,7 +306,7 @@ new_scop (edge entry, edge exit)
scop->may_waw_no_source = NULL; scop->may_waw_no_source = NULL;
scop_set_region (scop, region); scop_set_region (scop, region);
scop->pbbs.create (3); scop->pbbs.create (3);
POLY_SCOP_P (scop) = false; scop->poly_scop_p = false;
scop->drs.create (3); scop->drs.create (3);
return scop; return scop;
...@@ -321,7 +321,7 @@ free_scop (scop_p scop) ...@@ -321,7 +321,7 @@ free_scop (scop_p scop)
poly_bb_p pbb; poly_bb_p pbb;
remove_gbbs_in_scop (scop); remove_gbbs_in_scop (scop);
free_sese_info (SCOP_REGION (scop)); free_sese_info (scop->scop_info);
FOR_EACH_VEC_ELT (scop->pbbs, i, pbb) FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
free_poly_bb (pbb); free_poly_bb (pbb);
...@@ -475,13 +475,13 @@ print_pbb (FILE *file, poly_bb_p pbb) ...@@ -475,13 +475,13 @@ print_pbb (FILE *file, poly_bb_p pbb)
void void
print_scop_params (FILE *file, scop_p scop) print_scop_params (FILE *file, scop_p scop)
{ {
if (SESE_PARAMS (SCOP_REGION (scop)).is_empty ()) if (SESE_PARAMS (scop->scop_info).is_empty ())
return; return;
int i; int i;
tree t; tree t;
fprintf (file, "parameters ("); fprintf (file, "parameters (");
FOR_EACH_VEC_ELT (SESE_PARAMS (SCOP_REGION (scop)), i, t) FOR_EACH_VEC_ELT (SESE_PARAMS (scop->scop_info), i, t)
{ {
print_generic_expr (file, t, 0); print_generic_expr (file, t, 0);
fprintf (file, ", "); fprintf (file, ", ");
......
...@@ -387,12 +387,6 @@ struct dr_info ...@@ -387,12 +387,6 @@ struct dr_info
dr_info (data_reference_p dr, int alias_set, poly_bb_p pbb) dr_info (data_reference_p dr, int alias_set, poly_bb_p pbb)
: dr (dr), alias_set (alias_set), pbb (pbb) {} : dr (dr), alias_set (alias_set), pbb (pbb) {}
/* A simpler constructor to be able to push these objects in a vec. */
dr_info (int i) : dr (NULL), alias_set (-1), pbb (NULL)
{
gcc_assert (i == 0);
}
/* Assignment operator, to be able to iterate over a vec of these objects. */ /* Assignment operator, to be able to iterate over a vec of these objects. */
const dr_info & const dr_info &
operator= (const dr_info &p) operator= (const dr_info &p)
...@@ -409,7 +403,7 @@ struct dr_info ...@@ -409,7 +403,7 @@ struct dr_info
struct scop struct scop
{ {
/* A SCOP is defined as a SESE region. */ /* A SCOP is defined as a SESE region. */
sese_info_p region; sese_info_p scop_info;
/* Number of parameters in SCoP. */ /* Number of parameters in SCoP. */
graphite_dim_t nb_params; graphite_dim_t nb_params;
...@@ -453,10 +447,6 @@ struct scop ...@@ -453,10 +447,6 @@ struct scop
bool poly_scop_p; bool poly_scop_p;
}; };
#define SCOP_REGION(S) (S->region)
#define SCOP_CONTEXT(S) (NULL)
#define POLY_SCOP_P(S) (S->poly_scop_p)
extern scop_p new_scop (edge, edge); extern scop_p new_scop (edge, edge);
extern void free_scop (scop_p); extern void free_scop (scop_p);
extern gimple_poly_bb_p new_gimple_poly_bb (basic_block, vec<data_reference_p>); extern gimple_poly_bb_p new_gimple_poly_bb (basic_block, vec<data_reference_p>);
...@@ -471,7 +461,7 @@ extern bool apply_poly_transforms (scop_p); ...@@ -471,7 +461,7 @@ extern bool apply_poly_transforms (scop_p);
static inline void static inline void
scop_set_region (scop_p scop, sese_info_p region) scop_set_region (scop_p scop, sese_info_p region)
{ {
scop->region = region; scop->scop_info = region;
} }
/* Returns the number of parameters for SCOP. */ /* Returns the number of parameters for SCOP. */
......
...@@ -491,7 +491,7 @@ private: ...@@ -491,7 +491,7 @@ private:
vec<sese_l> scops; vec<sese_l> scops;
}; };
sese_l scop_detection::invalid_sese (0); sese_l scop_detection::invalid_sese (NULL, NULL);
/* Return an sese_l around the LOOP. */ /* Return an sese_l around the LOOP. */
...@@ -888,13 +888,13 @@ void ...@@ -888,13 +888,13 @@ void
scop_detection::remove_subscops (sese_l s1) scop_detection::remove_subscops (sese_l s1)
{ {
int j; int j;
sese_l s2 (0); sese_l *s2;
FOR_EACH_VEC_ELT_REVERSE (scops, j, s2) FOR_EACH_VEC_ELT_REVERSE (scops, j, s2)
{ {
if (subsumes (s1, s2)) if (subsumes (s1, *s2))
{ {
DEBUG_PRINT (dp << "\nRemoving sub-SCoP"; DEBUG_PRINT (dp << "\nRemoving sub-SCoP";
print_sese (dump_file, s2)); print_sese (dump_file, *s2));
scops.unordered_remove (j); scops.unordered_remove (j);
} }
} }
...@@ -923,13 +923,13 @@ void ...@@ -923,13 +923,13 @@ void
scop_detection::remove_intersecting_scops (sese_l s1) scop_detection::remove_intersecting_scops (sese_l s1)
{ {
int j; int j;
sese_l s2 (0); sese_l *s2;
FOR_EACH_VEC_ELT_REVERSE (scops, j, s2) FOR_EACH_VEC_ELT_REVERSE (scops, j, s2)
{ {
if (intersects (s1, s2)) if (intersects (s1, *s2))
{ {
DEBUG_PRINT (dp << "\nRemoving intersecting SCoP"; DEBUG_PRINT (dp << "\nRemoving intersecting SCoP";
print_sese (dump_file, s2); dp << "Intersects with:"; print_sese (dump_file, *s2); dp << "Intersects with:";
print_sese (dump_file, s1)); print_sese (dump_file, s1));
scops.unordered_remove (j); scops.unordered_remove (j);
} }
...@@ -1273,7 +1273,7 @@ dot_all_scops_1 (FILE *file, vec<scop_p> scops) ...@@ -1273,7 +1273,7 @@ dot_all_scops_1 (FILE *file, vec<scop_p> scops)
/* Select color for SCoP. */ /* Select color for SCoP. */
FOR_EACH_VEC_ELT (scops, i, scop) FOR_EACH_VEC_ELT (scops, i, scop)
{ {
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
if (bb_in_sese_p (bb, region) || (region.exit->dest == bb) if (bb_in_sese_p (bb, region) || (region.exit->dest == bb)
|| (region.entry->dest == bb)) || (region.entry->dest == bb))
{ {
...@@ -1482,7 +1482,7 @@ scop_detection::nb_pbbs_in_loops (scop_p scop) ...@@ -1482,7 +1482,7 @@ scop_detection::nb_pbbs_in_loops (scop_p scop)
int res = 0; int res = 0;
FOR_EACH_VEC_ELT (scop->pbbs, i, pbb) FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
if (loop_in_sese_p (gbb_loop (PBB_BLACK_BOX (pbb)), scop->region->region)) if (loop_in_sese_p (gbb_loop (PBB_BLACK_BOX (pbb)), scop->scop_info->region))
res++; res++;
return res; return res;
...@@ -1623,7 +1623,7 @@ static void ...@@ -1623,7 +1623,7 @@ static void
find_scop_parameters (scop_p scop) find_scop_parameters (scop_p scop)
{ {
unsigned i; unsigned i;
sese_info_p region = scop->region; sese_info_p region = scop->scop_info;
struct loop *loop; struct loop *loop;
/* Find the parameters used in the loop bounds. */ /* Find the parameters used in the loop bounds. */
...@@ -1655,7 +1655,7 @@ try_generate_gimple_bb (scop_p scop, basic_block bb) ...@@ -1655,7 +1655,7 @@ try_generate_gimple_bb (scop_p scop, basic_block bb)
{ {
vec<data_reference_p> drs; vec<data_reference_p> drs;
drs.create (5); drs.create (5);
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
loop_p nest = outermost_loop_in_sese (region, bb); loop_p nest = outermost_loop_in_sese (region, bb);
loop_p loop = bb->loop_father; loop_p loop = bb->loop_father;
...@@ -1700,7 +1700,7 @@ gather_bbs::gather_bbs (cdi_direction direction, scop_p scop) ...@@ -1700,7 +1700,7 @@ gather_bbs::gather_bbs (cdi_direction direction, scop_p scop)
void void
gather_bbs::before_dom_children (basic_block bb) gather_bbs::before_dom_children (basic_block bb)
{ {
if (!bb_in_sese_p (bb, scop->region->region)) if (!bb_in_sese_p (bb, scop->scop_info->region))
return; return;
gcond *stmt = single_pred_cond_non_loop_exit (bb); gcond *stmt = single_pred_cond_non_loop_exit (bb);
...@@ -1717,7 +1717,7 @@ gather_bbs::before_dom_children (basic_block bb) ...@@ -1717,7 +1717,7 @@ gather_bbs::before_dom_children (basic_block bb)
cases.safe_push (NULL); cases.safe_push (NULL);
} }
scop->region->bbs.safe_push (bb); scop->scop_info->bbs.safe_push (bb);
gimple_poly_bb_p gbb = try_generate_gimple_bb (scop, bb); gimple_poly_bb_p gbb = try_generate_gimple_bb (scop, bb);
GBB_CONDITIONS (gbb) = conditions.copy (); GBB_CONDITIONS (gbb) = conditions.copy ();
...@@ -1733,7 +1733,7 @@ gather_bbs::before_dom_children (basic_block bb) ...@@ -1733,7 +1733,7 @@ gather_bbs::before_dom_children (basic_block bb)
void void
gather_bbs::after_dom_children (basic_block bb) gather_bbs::after_dom_children (basic_block bb)
{ {
if (!bb_in_sese_p (bb, scop->region->region)) if (!bb_in_sese_p (bb, scop->scop_info->region))
return; return;
if (single_pred_cond_non_loop_exit (bb)) if (single_pred_cond_non_loop_exit (bb))
...@@ -1760,10 +1760,10 @@ build_scops (vec<scop_p> *scops) ...@@ -1760,10 +1760,10 @@ build_scops (vec<scop_p> *scops)
/* Now create scops from the lightweight SESEs. */ /* Now create scops from the lightweight SESEs. */
vec<sese_l> scops_l = sb.get_scops (); vec<sese_l> scops_l = sb.get_scops ();
int i; int i;
sese_l s (0); sese_l *s;
FOR_EACH_VEC_ELT (scops_l, i, s) FOR_EACH_VEC_ELT (scops_l, i, s)
{ {
scop_p scop = new_scop (s.entry, s.exit); scop_p scop = new_scop (s->entry, s->exit);
/* Record all basic blocks and their conditions in REGION. */ /* Record all basic blocks and their conditions in REGION. */
gather_bbs (CDI_DOMINATORS, scop).walk (cfun->cfg->x_entry_block_ptr); gather_bbs (CDI_DOMINATORS, scop).walk (cfun->cfg->x_entry_block_ptr);
...@@ -1777,7 +1777,7 @@ build_scops (vec<scop_p> *scops) ...@@ -1777,7 +1777,7 @@ build_scops (vec<scop_p> *scops)
continue; continue;
} }
build_sese_loop_nests (scop->region); build_sese_loop_nests (scop->scop_info);
find_scop_parameters (scop); find_scop_parameters (scop);
graphite_dim_t max_dim = PARAM_VALUE (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS); graphite_dim_t max_dim = PARAM_VALUE (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS);
......
...@@ -335,7 +335,7 @@ build_scop_scattering (scop_p scop) ...@@ -335,7 +335,7 @@ build_scop_scattering (scop_p scop)
int prefix = 0; int prefix = 0;
if (previous_gbb) if (previous_gbb)
prefix = nb_common_loops (scop->region->region, previous_gbb, gbb); prefix = nb_common_loops (scop->scop_info->region, previous_gbb, gbb);
previous_gbb = gbb; previous_gbb = gbb;
...@@ -357,7 +357,7 @@ extract_affine_chrec (scop_p s, tree e, __isl_take isl_space *space) ...@@ -357,7 +357,7 @@ extract_affine_chrec (scop_p s, tree e, __isl_take isl_space *space)
isl_pw_aff *lhs = extract_affine (s, CHREC_LEFT (e), isl_space_copy (space)); isl_pw_aff *lhs = extract_affine (s, CHREC_LEFT (e), isl_space_copy (space));
isl_pw_aff *rhs = extract_affine (s, CHREC_RIGHT (e), isl_space_copy (space)); isl_pw_aff *rhs = extract_affine (s, CHREC_RIGHT (e), isl_space_copy (space));
isl_local_space *ls = isl_local_space_from_space (space); isl_local_space *ls = isl_local_space_from_space (space);
unsigned pos = sese_loop_depth (s->region->region, get_chrec_loop (e)) - 1; unsigned pos = sese_loop_depth (s->scop_info->region, get_chrec_loop (e)) - 1;
isl_aff *loop = isl_aff_set_coefficient_si isl_aff *loop = isl_aff_set_coefficient_si
(isl_aff_zero_on_domain (ls), isl_dim_in, pos, 1); (isl_aff_zero_on_domain (ls), isl_dim_in, pos, 1);
isl_pw_aff *l = isl_pw_aff_from_aff (loop); isl_pw_aff *l = isl_pw_aff_from_aff (loop);
...@@ -539,8 +539,8 @@ extract_affine (scop_p s, tree e, __isl_take isl_space *space) ...@@ -539,8 +539,8 @@ extract_affine (scop_p s, tree e, __isl_take isl_space *space)
break; break;
case SSA_NAME: case SSA_NAME:
gcc_assert (-1 != parameter_index_in_region_1 (e, s->region) gcc_assert (-1 != parameter_index_in_region_1 (e, s->scop_info)
|| !invariant_in_sese_p_rec (e, s->region->region)); || !invariant_in_sese_p_rec (e, s->scop_info->region));
res = extract_affine_name (s, e, space); res = extract_affine_name (s, e, space);
break; break;
...@@ -571,7 +571,7 @@ extract_affine (scop_p s, tree e, __isl_take isl_space *space) ...@@ -571,7 +571,7 @@ extract_affine (scop_p s, tree e, __isl_take isl_space *space)
static void static void
set_scop_parameter_dim (scop_p scop) set_scop_parameter_dim (scop_p scop)
{ {
sese_info_p region = scop->region; sese_info_p region = scop->scop_info;
unsigned nbp = sese_nb_params (region); unsigned nbp = sese_nb_params (region);
isl_space *space = isl_space_set_alloc (scop->isl_context, nbp, 0); isl_space *space = isl_space_set_alloc (scop->isl_context, nbp, 0);
...@@ -594,7 +594,7 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop, ...@@ -594,7 +594,7 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
{ {
tree nb_iters = number_of_latch_executions (loop); tree nb_iters = number_of_latch_executions (loop);
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
gcc_assert (loop_in_sese_p (loop, region)); gcc_assert (loop_in_sese_p (loop, region));
isl_set *inner = isl_set_copy (outer); isl_set *inner = isl_set_copy (outer);
...@@ -704,7 +704,7 @@ create_pw_aff_from_tree (poly_bb_p pbb, tree t) ...@@ -704,7 +704,7 @@ create_pw_aff_from_tree (poly_bb_p pbb, tree t)
{ {
scop_p scop = PBB_SCOP (pbb); scop_p scop = PBB_SCOP (pbb);
t = scalar_evolution_in_region (scop->region->region, pbb_loop (pbb), t); t = scalar_evolution_in_region (scop->scop_info->region, pbb_loop (pbb), t);
gcc_assert (!automatically_generated_chrec_p (t)); gcc_assert (!automatically_generated_chrec_p (t));
return extract_affine (scop, t, isl_set_get_space (pbb->domain)); return extract_affine (scop, t, isl_set_get_space (pbb->domain));
...@@ -818,7 +818,7 @@ add_conditions_to_constraints (scop_p scop) ...@@ -818,7 +818,7 @@ add_conditions_to_constraints (scop_p scop)
static void static void
add_param_constraints (scop_p scop, graphite_dim_t p) add_param_constraints (scop_p scop, graphite_dim_t p)
{ {
tree parameter = SESE_PARAMS (scop->region)[p]; tree parameter = SESE_PARAMS (scop->scop_info)[p];
tree type = TREE_TYPE (parameter); tree type = TREE_TYPE (parameter);
tree lb = NULL_TREE; tree lb = NULL_TREE;
tree ub = NULL_TREE; tree ub = NULL_TREE;
...@@ -892,7 +892,7 @@ build_scop_context (scop_p scop) ...@@ -892,7 +892,7 @@ build_scop_context (scop_p scop)
static void static void
build_scop_iteration_domain (scop_p scop) build_scop_iteration_domain (scop_p scop)
{ {
sese_info_p region = scop->region; sese_info_p region = scop->scop_info;
int nb_loops = number_of_loops (cfun); int nb_loops = number_of_loops (cfun);
isl_set **doms = XCNEWVEC (isl_set *, nb_loops); isl_set **doms = XCNEWVEC (isl_set *, nb_loops);
...@@ -1103,13 +1103,13 @@ build_alias_set (scop_p scop) ...@@ -1103,13 +1103,13 @@ build_alias_set (scop_p scop)
{ {
int num_vertices = scop->drs.length (); int num_vertices = scop->drs.length ();
struct graph *g = new_graph (num_vertices); struct graph *g = new_graph (num_vertices);
dr_info dr1 (0), dr2 (0); dr_info *dr1, *dr2;
int i, j; int i, j;
int *all_vertices; int *all_vertices;
FOR_EACH_VEC_ELT (scop->drs, i, dr1) FOR_EACH_VEC_ELT (scop->drs, i, dr1)
for (j = i+1; scop->drs.iterate (j, &dr2); j++) for (j = i+1; scop->drs.iterate (j, &dr2); j++)
if (dr_may_alias_p (dr1.dr, dr2.dr, true)) if (dr_may_alias_p (dr1->dr, dr2->dr, true))
{ {
add_edge (g, i, j); add_edge (g, i, j);
add_edge (g, j, i); add_edge (g, j, i);
...@@ -1155,9 +1155,9 @@ build_scop_drs (scop_p scop) ...@@ -1155,9 +1155,9 @@ build_scop_drs (scop_p scop)
build_alias_set (scop); build_alias_set (scop);
dr_info dri (0); dr_info *dri;
FOR_EACH_VEC_ELT (scop->drs, i, dri) FOR_EACH_VEC_ELT (scop->drs, i, dri)
build_poly_dr (dri); build_poly_dr (*dri);
} }
/* Analyze all the data references of STMTS and add them to the /* Analyze all the data references of STMTS and add them to the
...@@ -1166,7 +1166,7 @@ build_scop_drs (scop_p scop) ...@@ -1166,7 +1166,7 @@ build_scop_drs (scop_p scop)
static void static void
analyze_drs_in_stmts (scop_p scop, basic_block bb, vec<gimple *> stmts) analyze_drs_in_stmts (scop_p scop, basic_block bb, vec<gimple *> stmts)
{ {
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
if (!bb_in_sese_p (bb, region)) if (!bb_in_sese_p (bb, region))
return; return;
...@@ -1283,7 +1283,7 @@ insert_out_of_ssa_copy_on_edge (scop_p scop, edge e, tree res, tree expr) ...@@ -1283,7 +1283,7 @@ insert_out_of_ssa_copy_on_edge (scop_p scop, edge e, tree res, tree expr)
gsi_commit_edge_inserts (); gsi_commit_edge_inserts ();
basic_block bb = gimple_bb (stmt); basic_block bb = gimple_bb (stmt);
if (!bb_in_sese_p (bb, scop->region->region)) if (!bb_in_sese_p (bb, scop->scop_info->region))
return; return;
if (!gbb_from_bb (bb)) if (!gbb_from_bb (bb))
...@@ -1365,7 +1365,7 @@ propagate_expr_outside_region (tree def, tree expr, sese_l &region) ...@@ -1365,7 +1365,7 @@ propagate_expr_outside_region (tree def, tree expr, sese_l &region)
static void static void
rewrite_close_phi_out_of_ssa (scop_p scop, gimple_stmt_iterator *psi) rewrite_close_phi_out_of_ssa (scop_p scop, gimple_stmt_iterator *psi)
{ {
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
gimple *phi = gsi_stmt (*psi); gimple *phi = gsi_stmt (*psi);
tree res = gimple_phi_result (phi); tree res = gimple_phi_result (phi);
basic_block bb = gimple_bb (phi); basic_block bb = gimple_bb (phi);
...@@ -1498,7 +1498,7 @@ static void ...@@ -1498,7 +1498,7 @@ static void
rewrite_reductions_out_of_ssa (scop_p scop) rewrite_reductions_out_of_ssa (scop_p scop)
{ {
basic_block bb; basic_block bb;
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
FOR_EACH_BB_FN (bb, cfun) FOR_EACH_BB_FN (bb, cfun)
if (bb_in_sese_p (bb, region)) if (bb_in_sese_p (bb, region))
...@@ -1563,7 +1563,7 @@ handle_scalar_deps_crossing_scop_limits (scop_p scop, tree def, gimple *stmt) ...@@ -1563,7 +1563,7 @@ handle_scalar_deps_crossing_scop_limits (scop_p scop, tree def, gimple *stmt)
tree var = create_tmp_reg (TREE_TYPE (def)); tree var = create_tmp_reg (TREE_TYPE (def));
tree new_name = make_ssa_name (var, stmt); tree new_name = make_ssa_name (var, stmt);
bool needs_copy = false; bool needs_copy = false;
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
imm_use_iterator imm_iter; imm_use_iterator imm_iter;
gimple *use_stmt; gimple *use_stmt;
...@@ -1601,7 +1601,7 @@ handle_scalar_deps_crossing_scop_limits (scop_p scop, tree def, gimple *stmt) ...@@ -1601,7 +1601,7 @@ handle_scalar_deps_crossing_scop_limits (scop_p scop, tree def, gimple *stmt)
static bool static bool
rewrite_cross_bb_scalar_deps (scop_p scop, gimple_stmt_iterator *gsi) rewrite_cross_bb_scalar_deps (scop_p scop, gimple_stmt_iterator *gsi)
{ {
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
gimple *stmt = gsi_stmt (*gsi); gimple *stmt = gsi_stmt (*gsi);
imm_use_iterator imm_iter; imm_use_iterator imm_iter;
tree def; tree def;
...@@ -1686,7 +1686,7 @@ rewrite_cross_bb_scalar_deps_out_of_ssa (scop_p scop) ...@@ -1686,7 +1686,7 @@ rewrite_cross_bb_scalar_deps_out_of_ssa (scop_p scop)
{ {
basic_block bb; basic_block bb;
gimple_stmt_iterator psi; gimple_stmt_iterator psi;
sese_l region = scop->region->region; sese_l region = scop->scop_info->region;
bool changed = false; bool changed = false;
/* Create an extra empty BB after the scop. */ /* Create an extra empty BB after the scop. */
...@@ -1729,6 +1729,6 @@ build_poly_scop (scop_p scop) ...@@ -1729,6 +1729,6 @@ build_poly_scop (scop_p scop)
/* This SCoP has been translated to the polyhedral /* This SCoP has been translated to the polyhedral
representation. */ representation. */
POLY_SCOP_P (scop) = true; scop->poly_scop_p = true;
} }
#endif /* HAVE_isl */ #endif /* HAVE_isl */
...@@ -144,7 +144,7 @@ print_graphite_scop_statistics (FILE* file, scop_p scop) ...@@ -144,7 +144,7 @@ print_graphite_scop_statistics (FILE* file, scop_p scop)
gimple_stmt_iterator psi; gimple_stmt_iterator psi;
loop_p loop = bb->loop_father; loop_p loop = bb->loop_father;
if (!bb_in_sese_p (bb, scop->region->region)) if (!bb_in_sese_p (bb, scop->scop_info->region))
continue; continue;
n_bbs++; n_bbs++;
...@@ -162,7 +162,7 @@ print_graphite_scop_statistics (FILE* file, scop_p scop) ...@@ -162,7 +162,7 @@ print_graphite_scop_statistics (FILE* file, scop_p scop)
n_p_stmts += bb->count; n_p_stmts += bb->count;
} }
if (loop->header == bb && loop_in_sese_p (loop, scop->region->region)) if (loop->header == bb && loop_in_sese_p (loop, scop->scop_info->region))
{ {
n_loops++; n_loops++;
n_p_loops += bb->count; n_p_loops += bb->count;
...@@ -171,8 +171,8 @@ print_graphite_scop_statistics (FILE* file, scop_p scop) ...@@ -171,8 +171,8 @@ print_graphite_scop_statistics (FILE* file, scop_p scop)
fprintf (file, "\nFunction Name: %s\n", current_function_name ()); fprintf (file, "\nFunction Name: %s\n", current_function_name ());
edge scop_begin = scop->region->region.entry; edge scop_begin = scop->scop_info->region.entry;
edge scop_end = scop->region->region.exit; edge scop_end = scop->scop_info->region.exit;
fprintf (file, "\nSCoP (entry_edge (bb_%d, bb_%d), ", fprintf (file, "\nSCoP (entry_edge (bb_%d, bb_%d), ",
scop_begin->src->index, scop_begin->dest->index); scop_begin->src->index, scop_begin->dest->index);
...@@ -334,7 +334,7 @@ graphite_transform_loops (void) ...@@ -334,7 +334,7 @@ graphite_transform_loops (void)
if (dump_file && dump_flags) if (dump_file && dump_flags)
print_scop (dump_file, scop); print_scop (dump_file, scop);
if (POLY_SCOP_P (scop) if (scop->poly_scop_p
&& apply_poly_transforms (scop) && apply_poly_transforms (scop)
&& graphite_regenerate_ast_isl (scop)) && graphite_regenerate_ast_isl (scop))
need_cfg_cleanup_p = true; need_cfg_cleanup_p = true;
......
...@@ -30,9 +30,6 @@ struct sese_l ...@@ -30,9 +30,6 @@ struct sese_l
{ {
sese_l (edge e, edge x) : entry (e), exit (x) {} sese_l (edge e, edge x) : entry (e), exit (x) {}
/* This is to push objects of sese_l in a vec. */
sese_l (int i) : entry (NULL), exit (NULL) { gcc_assert (i == 0); }
operator bool () const { return entry && exit; } operator bool () const { return entry && exit; }
const sese_l & const sese_l &
......
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