Vladimir Makarov <vmaka...@redhat.com> writes: > 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.
Thanks Vlad, committed as r211242. Given the problems with my first version, I suppose it'd make sense to wait a few days to see whether there's any fallout before applying the MIPS backend patch. Richard