re PR middle-end/54315 (unnecessary copy of return value for union)
authorEric Botcazou <ebotcazou@adacore.com>
Sat, 20 Oct 2012 21:00:23 +0000 (21:00 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sat, 20 Oct 2012 21:00:23 +0000 (21:00 +0000)
commit929634d86bcd5007915a67ef38e50a56e0e6bfd9
tree98407a614491ba2e6e3f90bd531334efd0366b60
parente598c332d81d419ecdfce59051bb4657c685e53f
re PR middle-end/54315 (unnecessary copy of return value for union)

PR rtl-optimization/54315
* calls.c (expand_call): Don't deal specifically with BLKmode values
returned in naked registers.
* expr.h (copy_blkmode_from_reg): Adjust prototype.
* expr.c (copy_blkmode_from_reg): Rename first parameter into TARGET and
make it required.  Assert that SRCREG hasn't BLKmode.  Add a couple of
short-circuits for common cases and be prepared for sub-word registers.
(expand_assignment): Call copy_blkmode_from_reg for BLKmode values
returned in naked registers.
(store_expr): Likewise.
(store_field): Likewise.

From-SVN: r192641
gcc/ChangeLog
gcc/calls.c
gcc/expr.c
gcc/expr.h