re PR tree-optimization/46556 (Code size regression in struct access)
authorBill Schmidt <wschmidt@linux.ibm.com>
Wed, 1 Aug 2012 13:02:38 +0000 (13:02 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Wed, 1 Aug 2012 13:02:38 +0000 (13:02 +0000)
commit2749c8f6b3afbaae1e0d18c47ee5eb0b07ee9bb4
treee01379151b097a379c693676f05e75d3280e2234
parent85add0cfd1e8712bb4d10d49fe2e37460c076a70
re PR tree-optimization/46556 (Code size regression in struct access)

gcc:

PR tree-optimization/46556
* gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
(base_cand_map): Change to hash table.
(base_cand_hash): New function.
(base_cand_free): Likewise.
(base_cand_eq): Likewise.
(lookup_cand): Change base_cand_map to hash table.
(find_basis_for_candidate): Likewise.
(base_cand_from_table): Exclude CAND_REF.
(restructure_reference): New function.
(slsr_process_ref): Likewise.
(find_candidates_in_block): Call slsr_process_ref.
(dump_candidate): Handle CAND_REF.
(base_cand_dump_callback): New function.
(dump_cand_chains): Change base_cand_map to hash table.
(replace_ref): New function.
(replace_refs): Likewise.
(analyze_candidates_and_replace): Call replace_refs.
(execute_strength_reduction): Change base_cand_map to hash table.

gcc/testsuite:

PR tree-optimization/46556
* testsuite/gcc.dg/tree-ssa/slsr-27.c: New.
* testsuite/gcc.dg/tree-ssa/slsr-28.c: New.
* testsuite/gcc.dg/tree-ssa/slsr-29.c: New.

From-SVN: r190037
gcc/ChangeLog
gcc/gimple-ssa-strength-reduction.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/slsr-27.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/slsr-28.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/slsr-29.c [new file with mode: 0644]