diff options
author | Aditya Kumar <aditya.k7@samsung.com> | 2015-11-18 21:08:33 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2015-11-18 21:08:33 +0000 |
commit | 2ecf4eca922c12a93918f2c4b7c3b3b962d63e98 (patch) | |
tree | 63b5b8bc4e8aefb6393afd67b19ea1a78dd450bf /gcc/sese.h | |
parent | 159e0d3b269d3cf48375b3984c6d10d806d4fa70 (diff) | |
download | gcc-2ecf4eca922c12a93918f2c4b7c3b3b962d63e98.zip gcc-2ecf4eca922c12a93918f2c4b7c3b3b962d63e98.tar.gz gcc-2ecf4eca922c12a93918f2c4b7c3b3b962d63e98.tar.bz2 |
Move codegen related functions to graphite-isl-ast-to-gimple.c
No functional changes intended.
This patch passes regtest and bootstrap on linux-x86-64 with
BOOT_CFLAGS='-O2 -fgraphite-identity -floop-nest-optimize'
gcc/ChangeLog:
2015-11-14 hiraditya <hiraditya@msn.com>
* graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove semicolon.
(class translate_isl_ast_to_gimple): Indentation.
(translate_pending_phi_nodes): Comment.
(add_parameters_to_ivs_params): Moved from sese.c inside class translate_isl_ast_to_gimple.
(get_max_schedule_dimensions): Same.
(generate_isl_context): Same.
(extend_schedule): Same.
(generate_isl_schedule): Same.
(set_options): Same.
(scop_to_isl_ast): Same.
(is_valid_rename): Same.
(get_rename): Same.
(get_rename_from_scev): Same.
(get_def_bb_for_const): Same.
(get_new_name): Same.
(collect_all_ssa_names): Same.
(copy_loop_phi_args): Same.
(copy_loop_phi_nodes): Same.
(copy_loop_close_phi_args): Same.
(copy_loop_close_phi_nodes): Same.
(copy_cond_phi_args): Same.
(copy_cond_phi_nodes): Same.
(graphite_copy_stmts_from_block): Same.
(copy_bb_and_scalar_dependences): Same.
(add_phi_arg_for_new_expr): Same.
(rename_uses): Same.
(set_rename): Same.
(set_rename_for_each_def): Same.
(gsi_insert_earliest): Same.
(rename_all_uses): Same.
(codegen_error_p): Same.
(print_isl_ast_node): Same.
(translate_isl_ast_for_loop): Call function codegen_error_p.
(translate_isl_ast_to_gimple::translate_isl_ast): Same.
(translate_isl_ast_node_user): Make nb_loops const and release iv_map before exit.
(get_true_edge_from_guard_bb): Move all free-functions early.
(get_false_edge_from_guard_bb): Same.
(bb_contains_loop_close_phi_nodes): Same.
(bb_contains_loop_phi_nodes): Same.
(is_loop_closed_ssa_use): Same.
(number_of_phi_nodes): Same.
(phi_uses_name): Same.
(later_of_the_two): Same.
(substitute_ssa_name):
(get_edges): Same.
(get_loc): Same.
(get_loop_init_value): Same.
(find_init_value): Same.
(find_init_value_close_phi): Same.
(ast_build_before_for): Same.
(graphite_regenerate_ast_isl): Formatting changes.
* graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
* sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
(set_rename): Same.
(gsi_insert_earliest): Same.
(collect_all_ssa_names): Same.
(rename_all_uses): Same.
(rename_uses): Same.
(get_def_bb_for_const): Same.
(copy_loop_phi_nodes): Same.
(copy_loop_close_phi_args): Same.
(copy_loop_close_phi_nodes): Same.
(copy_cond_phi_args): Same.
(copy_cond_phi_nodes): Same.
(set_rename_for_each_def): Same.
(graphite_copy_stmts_from_block): Same.
(copy_bb_and_scalar_dependences): Same.
(if_region_set_false_region): Same.
(scev_analyzable_p): Same.
* sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c
From-SVN: r230566
Diffstat (limited to 'gcc/sese.h')
-rw-r--r-- | gcc/sese.h | 44 |
1 files changed, 1 insertions, 43 deletions
@@ -59,7 +59,6 @@ get_exit_bb (sese_l &s) } /* Returns the index of V where ELEM can be found. -1 Otherwise. */ - template<typename T> int vec_find (const vec<T> &v, const T &elem) @@ -109,21 +108,10 @@ extern sese_info_p new_sese_info (edge, edge); extern void free_sese_info (sese_info_p); extern void sese_insert_phis_for_liveouts (sese_info_p, basic_block, edge, edge); extern void build_sese_loop_nests (sese_info_p); -extern edge copy_bb_and_scalar_dependences (basic_block, sese_info_p, edge, - vec<tree> , bool *); extern struct loop *outermost_loop_in_sese (sese_l &, basic_block); extern tree scalar_evolution_in_region (sese_l &, loop_p, tree); +extern bool scev_analyzable_p (tree, sese_l &); extern bool invariant_in_sese_p_rec (tree, sese_l &, bool *); -extern bool bb_contains_loop_phi_nodes (basic_block); -extern bool bb_contains_loop_close_phi_nodes (basic_block); -extern std::pair<edge, edge> get_edges (basic_block bb); -extern void copy_loop_phi_args (gphi *, init_back_edge_pair_t &, - gphi *, init_back_edge_pair_t &, - sese_info_p, bool); -extern bool copy_loop_close_phi_args (basic_block, basic_block, - sese_info_p, bool); -extern bool copy_cond_phi_args (gphi *, gphi *, vec<tree>, - sese_info_p, bool); /* Check that SESE contains LOOP. */ @@ -360,34 +348,4 @@ nb_common_loops (sese_l ®ion, gimple_poly_bb_p gbb1, gimple_poly_bb_p gbb2) return sese_loop_depth (region, common); } -/* Return true when DEF can be analyzed in REGION by the scalar - evolution analyzer. */ - -static inline bool -scev_analyzable_p (tree def, sese_l ®ion) -{ - loop_p loop; - tree scev; - tree type = TREE_TYPE (def); - - /* When Graphite generates code for a scev, the code generator - expresses the scev in function of a single induction variable. - This is unsafe for floating point computations, as it may replace - a floating point sum reduction with a multiplication. The - following test returns false for non integer types to avoid such - problems. */ - if (!INTEGRAL_TYPE_P (type) - && !POINTER_TYPE_P (type)) - return false; - - loop = loop_containing_stmt (SSA_NAME_DEF_STMT (def)); - scev = scalar_evolution_in_region (region, loop, def); - - return !chrec_contains_undetermined (scev) - && (TREE_CODE (scev) != SSA_NAME - || !defined_in_sese_p (scev, region)) - && (tree_does_not_contain_chrecs (scev) - || evolution_function_is_affine_p (scev)); -} - #endif |