diff options
author | Bin Cheng <bin.cheng@arm.com> | 2015-11-20 09:05:08 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2015-11-20 09:05:08 +0000 |
commit | cf5b92ef1ee2da9608f287e9a668e810c92d90f4 (patch) | |
tree | a0eaeaabd9ad7f71b77adb0cf347dee329391c0e /gcc/tree-parloops.c | |
parent | ec5a0fe0422d6f472d75528a14bd22511914e240 (diff) | |
download | gcc-cf5b92ef1ee2da9608f287e9a668e810c92d90f4.zip gcc-cf5b92ef1ee2da9608f287e9a668e810c92d90f4.tar.gz gcc-cf5b92ef1ee2da9608f287e9a668e810c92d90f4.tar.bz2 |
re PR tree-optimization/52272 (Performance regression of 410.bwaves on x86.)
PR tree-optimization/52272
* tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
(struct iv_common_cand_hasher): New struct.
(iv_common_cand_hasher::hash): New function.
(iv_common_cand_hasher::equal): New function.
(struct ivopts_data): New fields, iv_common_cand_tab and
iv_common_cands.
(tree_ssa_iv_optimize_init): Initialize above fields.
(record_common_cand, common_cand_cmp): New functions.
(add_iv_candidate_derived_from_uses): New function.
(add_iv_candidate_for_use): Record iv_common_cands derived from
iv use in hash table, instead of adding candidates directly.
(add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
(record_important_candidates): Add important candidates to iv uses'
related_cands. Always keep related_cands for future use.
(try_add_cand_for): Use iv uses' related_cands.
(free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
From-SVN: r230647
Diffstat (limited to 'gcc/tree-parloops.c')
0 files changed, 0 insertions, 0 deletions