[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-patches
Subject:    Re: patch to fix PR81481
From:       Vladimir Makarov <vmakarov () redhat ! com>
Date:       2017-09-30 14:03:30
Message-ID: 88964544-cc25-ec57-e278-da25f204aabc () redhat ! com
[Download RAW message or body]



On 09/30/2017 04:15 AM, Richard Sandiford wrote:
> Vladimir Makarov <vmakarov@redhat.com> writes:
>> The following patch fixes
>>
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81481
>>
>> The patch was bootstrapped and tested on x86-64.
>>
>> Committed as rev. 253300.
>>
>>
>> Index: ira-costs.c
>> ===================================================================
>> --- ira-costs.c (revision 253253)
>> +++ ira-costs.c (working copy)
>> @@ -1471,7 +1471,10 @@ scan_one_insn (rtx_insn *insn)
>>                 && targetm.legitimate_constant_p (GET_MODE (SET_DEST (set)),
>>                                                   XEXP (note, 0))
>>                 && REG_N_SETS (REGNO (SET_DEST (set))) == 1))
>> -      && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set))))
>> +      && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set)))
>> +      /* LRA does not use equiv with a symbol for PIC code.  */
>> +      && (! ira_use_lra_p || ! pic_offset_table_rtx
>> +         || ! contains_symbol_ref_p (XEXP (note, 0))))
>>        {
>>          enum reg_class cl = GENERAL_REGS;
>>          rtx reg = SET_DEST (set);
> I don't think this is the right test for PICness.  Most targets have
> an unconditional pic_offset_table_rtx.
>
Thank you, Richard, for checking the patch.

Yes, the test might be not right for PICness.  The actual patch goal was 
to sync IRA and LRA which uses the same code to analyze when an equiv 
can be used.  So if we need less conservative code, we should change the 
code in the both places.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic