This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Avoid ICE in LRA for calls with multiple return values


2014-10-02 22:30 GMT+04:00 Jeff Law <law@redhat.com>:
> On 10/02/14 08:30, Ilya Enkovich wrote:
>>
>> Hi,
>>
>> 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?
>>
>> Thanks,
>> Ilya
>> --
>> 2014-10-02  Ilya Enkovich  <ilya.enkovich@intel.com>
>>
>>         * lra-constraints.c (inherit_in_ebb): Handle calls with
>>         multiple return values.
>>         * caller-save.c (save_call_clobbered_regs): Likewise.
>
> 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.
>
> Did this fix all the multiple-return issues you encountered?

With this fix almost all benchmarks compile successfully but there is
still one ICE in LRA.  I described it in MPX ABI thread.

Ilya

>
> Jeff
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]