This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, This patch refactors how invariant variable/expressions are handled. Now they are recorded in the same kind data structure and handled similarly, which makes code easier to understand. Is it OK? Thanks, bin 2017-04-11 Bin Cheng <bin.cheng@arm.com> * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to inv_vars. Add inv_exprs. (struct iv_cand): Rename depends_on to inv_vars. (struct ivopts_data): Rename max_inv_id/n_invariant_uses to max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around. Refactor field used_inv_exprs from has_map to array n_inv_expr_uses. (dump_cand): Dump inv_vars. (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs. (record_invariant, find_depends, add_candidate_1): Ditto. (set_group_iv_cost, force_var_cost): Ditto. (split_address_cost, ptr_difference_cost, difference_cost): Ditto. (get_computation_cost_at, get_computation_cost): Ditto. (determine_group_iv_cost_generic): Ditto. (determine_group_iv_cost_address): Ditto. (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto. (determine_group_iv_costs): Ditto. (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size. (iv_ca_set_remove_invariants): Renamed to ... (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs. (iv_ca_set_no_cp): Use iv_ca_set_remove_invs. (iv_ca_set_add_invariants): Renamed to ... (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs. (iv_ca_set_cp): Use iv_ca_set_add_invs. (iv_ca_has_deps): Support inv_vars and inv_exprs. (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto. (create_new_ivs): Remove useless dump. gcc/testsuite/ChangeLog 2017-04-11 Bin Cheng <bin.cheng@arm.com> * g++.dg/tree-ssa/ivopts-3.C: Adjust test string.
Attachment:
0003-refactor-invariant-var-expr-20170225.txt
Description: 0003-refactor-invariant-var-expr-20170225.txt
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |