re PR tree-optimization/36945 (PRE/SCCVN do not handle aggregate function arguments...
authorRichard Guenther <rguenther@suse.de>
Tue, 29 Jul 2008 17:09:26 +0000 (17:09 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 29 Jul 2008 17:09:26 +0000 (17:09 +0000)
commitce94d3547f81cc3dd105f4a3377e72cdbd2bbd2c
treed2185d79e36deb34f5ad3885547df3a1a15064b0
parent0f3a057aa9e5b4f6fbdbee87e8224ca9ea5a6d83
re PR tree-optimization/36945 (PRE/SCCVN do not handle aggregate function arguments correctly)

2008-07-29  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/36945
* tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
Record invariant addresses un-decomposed.
(copy_reference_ops_from_call): Record reference call
arguments properly.  Simplify.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): New
helper split out from ...
(create_component_ref_by_pieces): ... here.  Simplify.
Prepare for recursive invocation for call arguments.
(create_expression_by_pieces): Adjust call to
create_component_ref_by_pieces.
(compute_avail): Process operand 2 of reference ops.

* gcc.dg/tree-ssa/ssa-pre-18.c: New testcase.

From-SVN: r138257
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-18.c [new file with mode: 0644]
gcc/tree-ssa-pre.c
gcc/tree-ssa-sccvn.c
gcc/tree-ssa-sccvn.h