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
This commit is contained in:
parent
159e0d3b26
commit
2ecf4eca92
5 changed files with 1956 additions and 1661 deletions
|
@ -1,3 +1,78 @@
|
|||
2015-11-18 Aditya Kumar <aditya.k7@samsung.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.
|
||||
|
||||
2015-11-18 Andreas Tobler <andreast@gcc.gnu.org>
|
||||
|
||||
* config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1717,9 +1717,9 @@ build_cross_bb_scalars_use (scop_p scop, tree use, gimple *use_stmt,
|
|||
gimple *def_stmt = SSA_NAME_DEF_STMT (use);
|
||||
if (gimple_bb (def_stmt) != gimple_bb (use_stmt))
|
||||
{
|
||||
DEBUG_PRINT (dp << "Adding scalar read:\n";
|
||||
DEBUG_PRINT (dp << "\nAdding scalar read:";
|
||||
print_generic_expr (dump_file, use, 0);
|
||||
dp << "From stmt:\n";
|
||||
dp << "\nFrom stmt:";
|
||||
print_gimple_stmt (dump_file, use_stmt, 0, 0));
|
||||
reads->safe_push (std::make_pair (use_stmt, use));
|
||||
}
|
||||
|
|
1575
gcc/sese.c
1575
gcc/sese.c
File diff suppressed because it is too large
Load diff
44
gcc/sese.h
44
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 ®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
|
||||
|
|
Loading…
Add table
Reference in a new issue