On Wed, May 3, 2017 at 3:41 PM, Bin.Cheng <amker.ch...@gmail.com> wrote: > On Wed, May 3, 2017 at 3:38 PM, Christophe Lyon > <christophe.l...@linaro.org> wrote: >> Hi Bin, >> >> >> On 24 April 2017 at 12:26, Richard Biener <richard.guent...@gmail.com> wrote: >>> On Tue, Apr 18, 2017 at 12:38 PM, Bin Cheng <bin.ch...@arm.com> wrote: >>>> 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? >>> >> >> This patch (r247512) caused regression on some arm >> targets/cpu/fpu/runtestflags combinations: >> FAIL: gcc.target/arm/ivopts.c object-size text <= 32 >> >> See: >> http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/247512/report-build-info.html > Hi Christophe, > Thanks very much for reporting. Seems it's more than pure > refactoring. I will investigate it. Hi, Though I tried to separate patch as much as possible, there are still dependencies in between. This regression will be resolved by later patches.
Thanks, bin > > Thanks, > bin >> >> Thanks, >> >> Christophe >> >> >>> Ok. >>> >>> Richard. >>> >>>> Thanks, >>>> bin >>>> >>>> 2017-04-11 Bin Cheng <bin.ch...@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.ch...@arm.com> >>>> >>>> * g++.dg/tree-ssa/ivopts-3.C: Adjust test string.