[PATCH 4/6] Shrink-wrapping
Bernd Schmidt
bernds@codesourcery.com
Fri Jul 8 13:57:00 GMT 2011
On 07/07/11 22:08, Richard Sandiford wrote:
> Sure, I understand that returns does more than return on ARM.
> What I meant was: we'd normally want that other stuff to be
> expressed in rtl alongside the (return) rtx. E.g. something like:
>
> (parallel
> [(return)
> (set (reg r4) (mem (plus (reg sp) (const_int ...))))
> (set (reg r5) (mem (plus (reg sp) (const_int ...))))
> (set (reg sp) (plus (reg sp) (const_int ...)))])
I've thought about it some more. Isn't this just a question of
definitions? Much like we implicitly clobber call-used registers for a
CALL rtx, we might as well define RETURN to restore the intersection
between regs_ever_live and call-saved regs? This is what its current
usage implies, but I guess it's never been necessary to spell it out
explicitly since we don't optimize across branches to the exit block.
Bernd
More information about the Gcc-patches
mailing list