[PR64164] fix regressions reported on m68k and armeb
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 19 Aug 2015 17:00:32 +0000 (17:00 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 19 Aug 2015 17:00:32 +0000 (17:00 +0000)
commitc24f5688adae2f885279e8fdce74a030e6944b7b
tree31f9d298632e1c8a23bdf19a980e7ed54c790474
parent8dc89e4d7ed340095fa0d27de5de584156b38c0b
[PR64164] fix regressions reported on m68k and armeb

Defer stack slot address assignment for all parms that can't live in
pseudos, and accept pseudos assignments in assign_param_setup_block.

for  gcc/ChangeLog

PR rtl-optimization/64164
* cfgexpand.c (parm_maybe_byref_p): Renamed to...
(parm_in_stack_slot_p): ... this.  Disregard mode, what
matters is whether the parm will live in a pseudo or a stack
slot.
(expand_one_ssa_partition): Deal with params without a default
def.  Disregard mode.
* cfgexpand.h: Renamed function declaration.
* tree-ssa-coalesce.c: Adjust.
* function.c (split_complex_args): Allocate stack slot for
unassigned parms before splitting.
(parm_in_unassigned_mem_p): New.  Use it instead of
parm_maybe_byref_p throughout this file.
(assign_parm_setup_block): Use it.  Accept pseudos in the
expand-assigned rtl.
(assign_parm_setup_reg): Drop BLKmode requirement.
(assign_parm_setup_stack): Allocate and fill in the address of
unassigned MEM parms.

From-SVN: r227015
gcc/ChangeLog
gcc/cfgexpand.c
gcc/cfgexpand.h
gcc/function.c
gcc/tree-ssa-coalesce.c