RFA: displacement handling in equiv_address_substitution

Vladimir Makarov vmakarov@redhat.com
Thu Oct 25 20:21:00 GMT 2012


On 10/25/2012 04:06 PM, Richard Sandiford wrote:
> Vladimir Makarov <vmakarov@redhat.com> writes:
>> On 10/25/2012 05:45 AM, Richard Sandiford wrote:
>>
>> I see a potential bug here.  We should not reject new equiv values for
>> base and index here.  After we decided to use equiv it should be changed
>> everywhere as we remove init insns.
> Hmm, I might be misunderstanding, sorry, but if we reject them, won't
> process_addr_reg sort the equiv thing out instead?  That's also what
> we do for equiv values that aren't just "reg" or "reg+offset".
>
> I.e., I thought the displacement handling was just an optimisation
> (although a very useful one :-)).  I'm not sure whether that answers...
>
>> So if we have base + index and each of these is changed by pair of
>> pseudos (I think it is an extremely rare situation) we now have 4
>> pseudos which we should use.  Another situation is pseudo + unspec and
>> we change pseudo by reg+offset.  We should deal with this somehow.
>>
>> I guess, we should generate reloads in equiv_address_substitution for
>> such rare cases.
> ...this too or not.
>
Sorry, Richard.  Please, ignore what I wrote about the potential bug.  I 
already forgot what I did.  You are right it is fixed in process_addr_reg.



More information about the Gcc-patches mailing list