diff options
author | Aditya Kumar <aditya.k7@samsung.com> | 2016-01-26 00:19:20 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2016-01-26 00:19:20 +0000 |
commit | adba512db0e12d215961958b522b8b2f0ab94ab0 (patch) | |
tree | 6ebff12ef5a02acdce4dfc118ac2c131d99e9cd0 /gcc/graphite.h | |
parent | 1e050c90812529ced914e94ef584d3774b66a360 (diff) | |
download | gcc-adba512db0e12d215961958b522b8b2f0ab94ab0.zip gcc-adba512db0e12d215961958b522b8b2f0ab94ab0.tar.gz gcc-adba512db0e12d215961958b522b8b2f0ab94ab0.tar.bz2 |
new scop schedule for isl-0.15
Keep unchanged the implementation for isl-0.14.
* graphite-poly.c (apply_poly_transforms): Simplify.
(print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
(print_isl_map): Same.
(print_isl_union_map): Same.
(print_isl_schedule): New.
(debug_isl_schedule): New.
* graphite-dependences.c (scop_get_reads): Do not call
isl_union_map_add_map that is undocumented isl functionality.
(scop_get_must_writes): Same.
(scop_get_may_writes): Same.
(scop_get_original_schedule): Remove.
(scop_get_dependences): Do not call isl_union_map_compute_flow that
is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
(compute_deps): Remove.
* graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
(debug_schedule_ast): New.
(translate_isl_ast_to_gimple::scop_to_isl_ast): Call set_separate_option.
(graphite_regenerate_ast_isl): Add dump.
(translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
from scop->transformed_schedule.
(graphite_regenerate_ast_isl): Add more dump.
* graphite-optimize-isl.c (optimize_isl): Set
scop->transformed_schedule. Check whether schedules are equal.
(apply_poly_transforms): Move here.
* graphite-poly.c (apply_poly_transforms): ... from here.
(free_poly_bb): Static.
(free_scop): Static.
(pbb_number_of_iterations_at_time): Remove.
(print_isl_ast): New.
(debug_isl_ast): New.
(debug_scop_pbb): New.
* graphite-scop-detection.c (print_edge): Move.
(print_sese): Move.
* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
(build_scop_scattering): Remove.
(create_pw_aff_from_tree): Assert instead of bailing out.
(add_condition_to_pbb): Remove unused code, do not fail.
(add_conditions_to_domain): Same.
(add_conditions_to_constraints): Remove.
(build_scop_context): New.
(add_iter_domain_dimension): New.
(build_iteration_domains): Initialize pbb->iterators.
Call add_conditions_to_domain.
(nested_in): New.
(loop_at): New.
(index_outermost_in_loop): New.
(index_pbb_in_loop): New.
(outermost_pbb_in): New.
(add_in_sequence): New.
(add_outer_projection): New.
(outer_projection_mupa): New.
(add_loop_schedule): New.
(build_schedule_pbb): New.
(build_schedule_loop): New.
(embed_in_surrounding_loops): New.
(build_schedule_loop_nest): New.
(build_original_schedule): New.
(build_poly_scop): Call build_original_schedule.
* graphite.h: Declare print_isl_schedule and debug_isl_schedule.
(free_poly_dr): Remove.
(struct poly_bb): Add iterators. Remove schedule, transformed, saved.
(free_poly_bb): Remove.
(debug_loop_vec): Remove.
(print_isl_ast): Declare.
(debug_isl_ast): Declare.
(scop_do_interchange): Remove.
(scop_do_strip_mine): Remove.
(scop_do_block): Remove.
(flatten_all_loops): Remove.
(optimize_isl): Remove.
(pbb_number_of_iterations_at_time): Remove.
(debug_scop_pbb): Declare.
(print_schedule_ast): Declare.
(debug_schedule_ast): Declare.
(struct scop): Remove schedule. Add original_schedule,
transformed_schedule.
(free_gimple_poly_bb): Remove.
(print_generated_program): Remove.
(debug_generated_program): Remove.
(unify_scattering_dimensions): Remove.
* sese.c (print_edge): ... here.
(print_sese): ... here.
(debug_edge): ... here.
(debug_sese): ... here.
* sese.h (print_edge): Declare.
(print_sese): Declare.
(dump_edge): Declare.
(dump_sese): Declare.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232812
Diffstat (limited to 'gcc/graphite.h')
-rw-r--r-- | gcc/graphite.h | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/gcc/graphite.h b/gcc/graphite.h index 2f36dede..578fa1a 100644 --- a/gcc/graphite.h +++ b/gcc/graphite.h @@ -209,7 +209,6 @@ struct poly_dr void new_poly_dr (poly_bb_p, gimple *, enum poly_dr_type, isl_map *, isl_set *); -void free_poly_dr (poly_dr_p); void debug_pdr (poly_dr_p); void print_pdr (FILE *, poly_dr_p); @@ -268,10 +267,9 @@ struct poly_bb The number of variables in the DOMAIN may change and is not related to the number of loops in the original code. */ isl_set *domain; - - /* The data references we access. */ - vec<poly_dr_p> drs; - +#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS + isl_set *iterators; +#else /* The original scattering. */ isl_map *schedule; @@ -280,6 +278,10 @@ struct poly_bb /* A copy of the transformed scattering. */ isl_map *saved; +#endif + + /* The data references we access. */ + vec<poly_dr_p> drs; /* The last basic block generated for this pbb. */ basic_block new_bb; @@ -290,8 +292,6 @@ struct poly_bb #define PBB_DRS(PBB) (PBB->drs) extern poly_bb_p new_poly_bb (scop_p, gimple_poly_bb_p); -extern void free_poly_bb (poly_bb_p); -extern void debug_loop_vec (poly_bb_p); extern void print_pbb_domain (FILE *, poly_bb_p); extern void print_pbb (FILE *, poly_bb_p); extern void print_scop_context (FILE *, scop_p); @@ -313,18 +313,19 @@ extern void print_isl_map (FILE *, isl_map *); extern void print_isl_union_map (FILE *, isl_union_map *); extern void print_isl_aff (FILE *, isl_aff *); extern void print_isl_constraint (FILE *, isl_constraint *); +extern void print_isl_schedule (FILE *, isl_schedule *); +extern void debug_isl_schedule (isl_schedule *); +extern void print_isl_ast (FILE *, isl_ast_node *); +extern void debug_isl_ast (isl_ast_node *); extern void debug_isl_set (isl_set *); extern void debug_isl_map (isl_map *); extern void debug_isl_union_map (isl_union_map *); extern void debug_isl_aff (isl_aff *); extern void debug_isl_constraint (isl_constraint *); -extern int scop_do_interchange (scop_p); -extern int scop_do_strip_mine (scop_p, int); -extern bool scop_do_block (scop_p); -extern bool flatten_all_loops (scop_p); -extern bool optimize_isl (scop_p); -extern void pbb_number_of_iterations_at_time (poly_bb_p, graphite_dim_t, mpz_t); extern void debug_gmp_value (mpz_t); +extern void debug_scop_pbb (scop_p scop, int i); +extern void print_schedule_ast (FILE *, __isl_keep isl_schedule *, scop_p); +extern void debug_schedule_ast (__isl_keep isl_schedule *, scop_p); /* The basic block of the PBB. */ @@ -424,8 +425,16 @@ struct scop /* The context used internally by isl. */ isl_ctx *isl_context; +#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS + /* SCoP original schedule. */ + isl_schedule *original_schedule; + + /* SCoP transformed schedule. */ + isl_schedule *transformed_schedule; +#else /* SCoP final schedule. */ isl_schedule *schedule; +#endif /* The data dependence relation among the data references in this scop. */ isl_union_map *dependence; @@ -435,10 +444,6 @@ extern scop_p new_scop (edge, edge); extern void free_scop (scop_p); extern gimple_poly_bb_p new_gimple_poly_bb (basic_block, vec<data_reference_p>, vec<scalar_use>, vec<tree>); -extern void free_gimple_poly_bb (gimple_poly_bb_p); -extern void print_generated_program (FILE *, scop_p); -extern void debug_generated_program (scop_p); -extern int unify_scattering_dimensions (scop_p); extern bool apply_poly_transforms (scop_p); /* Set the region of SCOP to REGION. */ @@ -465,8 +470,11 @@ scop_set_nb_params (scop_p scop, graphite_dim_t nb_params) scop->nb_params = nb_params; } -isl_union_map * -scop_get_dependences (scop_p scop); +#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS +extern void scop_get_dependences (scop_p scop); +#else +extern isl_union_map *scop_get_dependences (scop_p scop); +#endif bool carries_deps (__isl_keep isl_union_map *schedule, @@ -475,9 +483,9 @@ carries_deps (__isl_keep isl_union_map *schedule, extern bool build_poly_scop (scop_p); extern bool graphite_regenerate_ast_isl (scop_p); - extern void build_scops (vec<scop_p> *); extern void dot_all_sese (FILE *, vec<sese_l> &); extern void dot_sese (sese_l &); extern void dot_cfg (); + #endif |