This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/46556] Code size regression in struct access
- From: "wschmidt at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 01 Aug 2012 13:02:46 +0000
- Subject: [Bug tree-optimization/46556] Code size regression in struct access
- Auto-submitted: auto-generated
- References: <bug-46556-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46556
--- Comment #9 from William J. Schmidt <wschmidt at gcc dot gnu.org> 2012-08-01 13:02:46 UTC ---
Author: wschmidt
Date: Wed Aug 1 13:02:38 2012
New Revision: 190037
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190037
Log:
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.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/slsr-27.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/slsr-28.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/slsr-29.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-ssa-strength-reduction.c
trunk/gcc/testsuite/ChangeLog