This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Avoid ICE in LRA for calls with multiple return values
- From: Jeff Law <law at redhat dot com>
- To: Ilya Enkovich <enkovich dot gnu at gmail dot com>, gcc-patches at gcc dot gnu dot org
- Cc: Vladimir Makarov <vmakarov at redhat dot com>
- Date: Thu, 02 Oct 2014 12:30:20 -0600
- Subject: Re: [PATCH] Avoid ICE in LRA for calls with multiple return values
- Authentication-results: sourceware.org; auth=none
- References: <20141002143000 dot GH28697 at msticlxl57 dot ims dot intel dot com>
On 10/02/14 08:30, Ilya Enkovich wrote:
This is fine. Please put a comment before the new if (REG_P (...)))
conditional which notes that a CALL_INSN may have multiple return values
expressed in an EXPR_LIST. That way if someone looks at this code a few
years down the line, they'll know exactly why the code checks REG_P
rather than just using the result blindly.
This patch adds a check for call destination register for a call return value optimization based on REG_RETURNED note. This solves some ICE issues for MPX codes.
Bootstrapped and tested on linux-x86_64. OK for trunk?
2014-10-02 Ilya Enkovich <firstname.lastname@example.org>
* lra-constraints.c (inherit_in_ebb): Handle calls with
multiple return values.
* caller-save.c (save_call_clobbered_regs): Likewise.
Did this fix all the multiple-return issues you encountered?