This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/30375] [4.3 Regression] tree-ssa-dse incorrectly removes struct initialization
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 26 Sep 2007 11:55:31 -0000
- Subject: [Bug tree-optimization/30375] [4.3 Regression] tree-ssa-dse incorrectly removes struct initialization
- References: <bug-30375-3760@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #31 from rguenth at gcc dot gnu dot org 2007-09-26 11:55 -------
Subject: Bug 30375
Author: rguenth
Date: Wed Sep 26 11:55:17 2007
New Revision: 128810
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128810
Log:
2007-09-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/30375
PR tree-optimization/33560
* tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
with calls.
Revert
2006-05-22 Aldy Hernandez <aldyh@redhat.com>
* tree-ssa-dse.c (aggregate_vardecl_d): New.
(dse_global_data): Add aggregate_vardecl field.
(dse_possible_dead_store_p): New.
Add prev_defvar variable.
Allow immediate uses and previous immediate uses to differ
if they are setting different parts of the whole.
(get_aggregate_vardecl): New.
(dse_record_partial_aggregate_store): New.
(dse_whole_aggregate_clobbered_p): New.
(dse_partial_kill_p): New.
Call dse_maybe_record_aggregate_store().
When checking whether a STMT and its USE_STMT refer to the
same memory address, check also for partial kills that clobber
the whole.
Move some variable definitions to the block where they are used.
(aggregate_vardecl_hash): New.
(aggregate_vardecl_eq): New.
(aggregate_vardecl_free): New.
(aggregate_whole_store_p): New.
(tree_ssa_dse): Initialize and free aggregate_vardecl.
Mark which aggregate stores we care about.
* gcc.dg/tree-ssa/complex-4.c: XFAIL.
* gcc.dg/tree-ssa/complex-5.c: Likewise.
* gcc.dg/tree-ssa/ssa-dse-9.c: Likewise.
* gcc.dg/torture/pr30375.c: New testcase.
* gcc.dg/torture/pr33560.c: New testcase.
* gcc.dg/tree-ssa/pr30375.c: Likewise.
Added:
trunk/gcc/testsuite/gcc.dg/torture/pr30375.c
trunk/gcc/testsuite/gcc.dg/torture/pr33560.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr30375.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/complex-4.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/complex-5.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-9.c
trunk/gcc/tree-ssa-dse.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30375