aboutsummaryrefslogtreecommitdiff
path: root/gcc/sese.h
diff options
context:
space:
mode:
authorAditya Kumar <aditya.k7@samsung.com>2015-11-18 21:08:33 +0000
committerSebastian Pop <spop@gcc.gnu.org>2015-11-18 21:08:33 +0000
commit2ecf4eca922c12a93918f2c4b7c3b3b962d63e98 (patch)
tree63b5b8bc4e8aefb6393afd67b19ea1a78dd450bf /gcc/sese.h
parent159e0d3b269d3cf48375b3984c6d10d806d4fa70 (diff)
downloadgcc-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.h44
1 files changed, 1 insertions, 43 deletions
diff --git a/gcc/sese.h b/gcc/sese.h
index bce226a..c3d4c9a 100644
--- a/gcc/sese.h
+++ b/gcc/sese.h
@@ -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 &region, 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 &region)
-{
- 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