tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use instead of redundant use_id and boolean have_use_for.
* tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use instead of redundant use_id and boolean have_use_for. (struct iv_use): Change sub_id into group_id. Remove field next. Move fields: related_cands, n_map_members, cost_map and selected to ... (struct iv_group): ... here. New structure. (struct iv_common_cand): Use structure declaration directly. (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields. (MAX_CONSIDERED_USES): Rename macro to ... (MAX_CONSIDERED_GROUPS): ... here. (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete. (dump_iv, dump_use, dump_cand): Refactor format of dump information. (dump_uses): Rename to ... (dump_groups): ... here. Update all uses. (tree_ssa_iv_optimize_init, alloc_iv): Update all uses. (find_induction_variables): Refactor format of dump information. (record_sub_use): Delete. (record_use): Update all uses. (record_group): New function. (record_group_use, find_interesting_uses_op): Call above functions. Update all uses. (find_interesting_uses_cond): Ditto. (group_compare_offset): New function. (split_all_small_groups): Rename to ... (split_small_address_groups_p): ... here. Update all uses. (split_address_groups): Update all uses. (find_interesting_uses): Refactor format of dump information. (add_candidate_1): Update all uses. Remove redundant check on iv, base and step. (add_candidate, record_common_cand): Remove redundant assert. (add_iv_candidate_for_biv): Update use. (add_iv_candidate_derived_from_uses): Update all uses. (add_iv_candidate_for_groups, record_important_candidates): Ditto. (alloc_use_cost_map): Ditto. (set_use_iv_cost, get_use_iv_cost): Rename to ... (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses. (determine_use_iv_cost_generic): Ditto. (determine_group_iv_cost_generic): Ditto. (determine_use_iv_cost_address): Ditto. (determine_group_iv_cost_address): Ditto. (determine_use_iv_cost_condition): Ditto. (determine_group_iv_cost_cond): Ditto. (determine_use_iv_cost): Ditto. (determine_group_iv_cost): Ditto. (set_autoinc_for_original_candidates): Update all uses. (find_iv_candidates): Update all uses. Refactor dump information. (determine_use_iv_costs): Ditto. (determine_iv_costs): Ditto. (iv_ca_cand_for_use): Rename to ... (iv_ca_cand_for_group): ... here. Update all uses. (iv_ca_add_use, iv_ca_add_group): Ditto. (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses. (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto. (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto. (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto. (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto. (create_new_iv, adjust_iv_update_pos): Ditto. (rewrite_use_address): Delete. (rewrite_use_address_1): Rename to ... (rewrite_use_address): ... here. (rewrite_use_compare): Update all uses. (rewrite_use): Delete. (rewrite_uses): Rename to ... (rewrite_groups): ... here. Update all uses. (remove_unused_ivs, free_loop_data): Update all uses. (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto. gcc/testsuite/ChangeLog * gcc.dg/tree-ssa/pr64705.c: Revise check string. * gcc.dg/tree-ssa/scev-9.c: Ditto. * gcc.dg/tree-ssa/scev-10.c: Ditto. * gcc.dg/tree-ssa/scev-11.c: Ditto. * gcc.dg/tree-ssa/scev-12.c: Ditto. From-SVN: r235513
This commit is contained in:
parent
317d98872b
commit
309a0cf699
8 changed files with 774 additions and 839 deletions
|
@ -1,3 +1,72 @@
|
|||
2016-04-27 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
* tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
|
||||
instead of redundant use_id and boolean have_use_for.
|
||||
(struct iv_use): Change sub_id into group_id. Remove field next.
|
||||
Move fields: related_cands, n_map_members, cost_map and selected
|
||||
to ...
|
||||
(struct iv_group): ... here. New structure.
|
||||
(struct iv_common_cand): Use structure declaration directly.
|
||||
(struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
|
||||
(MAX_CONSIDERED_USES): Rename macro to ...
|
||||
(MAX_CONSIDERED_GROUPS): ... here.
|
||||
(n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
|
||||
(dump_iv, dump_use, dump_cand): Refactor format of dump information.
|
||||
(dump_uses): Rename to ...
|
||||
(dump_groups): ... here. Update all uses.
|
||||
(tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
|
||||
(find_induction_variables): Refactor format of dump information.
|
||||
(record_sub_use): Delete.
|
||||
(record_use): Update all uses.
|
||||
(record_group): New function.
|
||||
(record_group_use, find_interesting_uses_op): Call above functions.
|
||||
Update all uses.
|
||||
(find_interesting_uses_cond): Ditto.
|
||||
(group_compare_offset): New function.
|
||||
(split_all_small_groups): Rename to ...
|
||||
(split_small_address_groups_p): ... here. Update all uses.
|
||||
(split_address_groups): Update all uses.
|
||||
(find_interesting_uses): Refactor format of dump information.
|
||||
(add_candidate_1): Update all uses. Remove redundant check on iv,
|
||||
base and step.
|
||||
(add_candidate, record_common_cand): Remove redundant assert.
|
||||
(add_iv_candidate_for_biv): Update use.
|
||||
(add_iv_candidate_derived_from_uses): Update all uses.
|
||||
(add_iv_candidate_for_groups, record_important_candidates): Ditto.
|
||||
(alloc_use_cost_map): Ditto.
|
||||
(set_use_iv_cost, get_use_iv_cost): Rename to ...
|
||||
(set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
|
||||
(determine_use_iv_cost_generic): Ditto.
|
||||
(determine_group_iv_cost_generic): Ditto.
|
||||
(determine_use_iv_cost_address): Ditto.
|
||||
(determine_group_iv_cost_address): Ditto.
|
||||
(determine_use_iv_cost_condition): Ditto.
|
||||
(determine_group_iv_cost_cond): Ditto.
|
||||
(determine_use_iv_cost): Ditto.
|
||||
(determine_group_iv_cost): Ditto.
|
||||
(set_autoinc_for_original_candidates): Update all uses.
|
||||
(find_iv_candidates): Update all uses. Refactor dump information.
|
||||
(determine_use_iv_costs): Ditto.
|
||||
(determine_iv_costs): Ditto.
|
||||
(iv_ca_cand_for_use): Rename to ...
|
||||
(iv_ca_cand_for_group): ... here. Update all uses.
|
||||
(iv_ca_add_use, iv_ca_add_group): Ditto.
|
||||
(iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
|
||||
(iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
|
||||
(iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
|
||||
(iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
|
||||
(try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
|
||||
(create_new_iv, adjust_iv_update_pos): Ditto.
|
||||
(rewrite_use_address): Delete.
|
||||
(rewrite_use_address_1): Rename to ...
|
||||
(rewrite_use_address): ... here.
|
||||
(rewrite_use_compare): Update all uses.
|
||||
(rewrite_use): Delete.
|
||||
(rewrite_uses): Rename to ...
|
||||
(rewrite_groups): ... here. Update all uses.
|
||||
(remove_unused_ivs, free_loop_data): Update all uses.
|
||||
(tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
|
||||
|
||||
2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* rtlanal.c (nonzero_bits1): Convert preprocessor check
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2016-04-27 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
* gcc.dg/tree-ssa/pr64705.c: Revise check string.
|
||||
* gcc.dg/tree-ssa/scev-9.c: Ditto.
|
||||
* gcc.dg/tree-ssa/scev-10.c: Ditto.
|
||||
* gcc.dg/tree-ssa/scev-11.c: Ditto.
|
||||
* gcc.dg/tree-ssa/scev-12.c: Ditto.
|
||||
|
||||
2016-04-27 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR ipa/70760
|
||||
|
|
|
@ -23,4 +23,4 @@ int foo(char *flags, long len, long i, long steps)
|
|||
|
||||
/* Don't expand iv {base+step, step}_loop into {base+x+y, step}_loop
|
||||
even if "step == x + y". */
|
||||
/* { dg-final { scan-tree-dump "base step_\[0-9\]* \\+ iter|base iter_\[0-9\]* \\+ step" "ivopts"} } */
|
||||
/* { dg-final { scan-tree-dump "Base:\\tstep_\[0-9\]* \\+ iter|Base:\\titer_\[0-9\]* \\+ step" "ivopts"} } */
|
||||
|
|
|
@ -18,6 +18,5 @@ foo (signed char s, signed char l)
|
|||
}
|
||||
|
||||
/* Address of array reference is scev. */
|
||||
/* { dg-final { scan-tree-dump-times "use \[0-9\]\n address" 1 "ivopts" } } */
|
||||
|
||||
/* { dg-final { scan-tree-dump-times " Type:\\tADDRESS\n Use \[0-9\].\[0-9\]:" 1 "ivopts" } } */
|
||||
|
||||
|
|
|
@ -23,6 +23,4 @@ foo (int n)
|
|||
}
|
||||
|
||||
/* Address of array reference to b is scev. */
|
||||
/* { dg-final { scan-tree-dump-times "use \[0-9\]\n address" 2 "ivopts" } } */
|
||||
|
||||
|
||||
/* { dg-final { scan-tree-dump-times " Type:\\tADDRESS\n Use \[0-9\].\[0-9\]:" 2 "ivopts" } } */
|
||||
|
|
|
@ -24,7 +24,4 @@ foo (int x, int n)
|
|||
}
|
||||
|
||||
/* Address of array reference to b is not scev. */
|
||||
/* { dg-final { scan-tree-dump-times "use \[0-9\]\n address" 1 "ivopts" } } */
|
||||
|
||||
|
||||
|
||||
/* { dg-final { scan-tree-dump-times " Type:\\tADDRESS\n Use \[0-9\].\[0-9\]:" 1 "ivopts" } } */
|
||||
|
|
|
@ -18,5 +18,5 @@ foo (unsigned char s, unsigned char l)
|
|||
}
|
||||
|
||||
/* Address of array reference is scev. */
|
||||
/* { dg-final { scan-tree-dump-times "use \[0-9\]\n address" 1 "ivopts" } } */
|
||||
/* { dg-final { scan-tree-dump-times " Type:\\tADDRESS\n Use \[0-9\].\[0-9\]:" 1 "ivopts" } } */
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue