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