This is the mail archive of the
mailing list for the GCC project.
Re: CALL_INSN_FUNCTION_USAGE fix, PR52773
- From: Bernd Schmidt <bernds at codesourcery dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 21 May 2014 11:37:47 +0200
- Subject: Re: CALL_INSN_FUNCTION_USAGE fix, PR52773
- Authentication-results: sourceware.org; auth=none
- References: <51C1ECB7 dot 5030804 at codesourcery dot com>
On 06/19/2013 07:39 PM, Bernd Schmidt wrote:
This is bug that triggers on m68k. The loop unroller creates a MULT
expression and tries to force it into a register, which causes a libcall
to be generated. Since args are pushed we create a
(use (mem (plus virtual_outgoing_args scratch)))
in CALL_INSN_FUNCTION_USAGE. Since we're past vregs, the
virtual_outgoing_args rtx survives to reload, which blows up.
Fixed by just using stack_pointer_rtx, since we use a scratch anyway
rather than a known offset. I also noticed that we actually add two of
these USEs, so I've fixed that as well.