]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/dse.cc
re PR rtl-optimization/44194 (struct returned by value generates useless stores)
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 14 Sep 2012 13:28:44 +0000 (13:28 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 14 Sep 2012 13:28:44 +0000 (13:28 +0000)
commit5ef0b50ddc04471eda920a9207ab6b62188311f8
tree5c32661073d991fc5ce315762062115ab0af337c
parentfcf8632eede077dd7ca327768af56e28f2d3fdca
re PR rtl-optimization/44194 (struct returned by value generates useless stores)

PR rtl-optimization/44194
* calls.c (expand_call): In the PARALLEL case, copy the return value
into pseudos instead of spilling it onto the stack.
* emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and
add new ADJUST_OBJECT parameter.
If ADJUST_OBJECT is set, drop the underlying object if it cannot be
proved that the adjusted memory access is still within its bounds.
(adjust_automodify_address_1): Adjust call to adjust_address_1.
(widen_memory_access): Likewise.
* expmed.c (store_bit_field_1): Call adjust_bitfield_address instead
of adjust_address.  Do not drop the underlying object of a MEM.
(store_fixed_bit_field): Likewise.
(extract_bit_field_1): Likewise.  Fix oversight in recursion.
(extract_fixed_bit_field): Likewise.
* expr.h (adjust_address_1): Adjust prototype.
(adjust_address): Adjust call to adjust_address_1.
(adjust_address_nv): Likewise.
(adjust_bitfield_address): New macro.
(adjust_bitfield_address_nv): Likewise.
* expr.c (expand_assignment): Handle a PARALLEL in more cases.
(store_expr): Likewise.
(store_field): Likewise.

* dse.c: Fix typos in the head comment.

From-SVN: r191302
gcc/ChangeLog
gcc/calls.c
gcc/dse.c
gcc/emit-rtl.c
gcc/expmed.c
gcc/expr.c
gcc/expr.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr44194-1.c