On 06/02/2014 03:36 PM, Richard Sandiford wrote:
> Ping.  Imagination's copyright assignment has now gone through and so
> in principle we're ready for the MIPS LRA switch to go in.  We need
> this LRA patch as a prequisite though.
>
> Robert: you also had an LRA change, but is it still needed after this one?
> If so, could you repost it and explain the case it handles?
>
> Thanks,
> Richard
>
> Richard Sandiford <rdsandif...@googlemail.com> writes:
>> Richard Sandiford <rdsandif...@googlemail.com> writes:
>>> I think a cleaner way of doing it would be to have helper functions
>>> that switch in and out of the eliminated form, storing the old form
>>> in fields of a new structure (either separate from address_info,
>>> or a local inheritance of it).  We probably also want to have arrays
>>> of address_infos, one for each operand, so that we don't analyse the
>>> same address too many times during the same insn.
>> In the end maintaining the array of address_infos seemed like too much
>> work.  It was hard to keep it up-to-date with various other changes
>> that can be made, including swapping commutative operands, to the point
>> where it wasn't obvious whether it was really an optimisation or not.
>>
>> Here's a patch that does the first.  Tested on x86_64-linux-gnu.
>> This time I also compared the assembly output for gcc.dg, g++.dg
>> and gcc.c-torture at -O2 on:
>>
>>   arch64-linux-gnu arm-eabi mipsisa64-sde-elf s390x-linux-gnu
>>   powerpc64-linux-gnu x86_64-linux-gnu
>>
>> s390x in particular is very good at exposing problems with this code.
>> (It caught bugs in the aborted attempt to keep an array of address_infos.)
>>
>> OK to install?
>>
Yes, Richard.  Thanks for the wide testing.  It was also a pleasure to
read this C++ code.  Really nice.

 

Reply via email to