On 6 May 2015 at 11:50, Ramana Radhakrishnan <ramana....@googlemail.com> wrote: > On Thu, Apr 30, 2015 at 6:49 PM, Yvan Roux <yvan.r...@linaro.org> wrote: >> Hi, >> >> On 23 March 2015 at 18:47, Yvan Roux <yvan.r...@linaro.org> wrote: >>> Hi, >>> >>> On 23 March 2015 at 17:08, Ramana Radhakrishnan >>> <ramana....@googlemail.com> wrote: >>>> On Wed, Mar 18, 2015 at 10:19 AM, Yvan Roux <yvan.r...@linaro.org> wrote: >>>>> Hi, >>>>> >>>>> This is a fix for PR64208 where LRA loops when dealing with >>>>> iwmmxt_arm_movdi insn. As explain in the PR, the issue was introduced >>>>> on trunk and 4.9 branch by fix of PR rtl-optimization/60969 and then >>>>> workaround by r211798 (-fuse-caller-save enable for ARM). >>>>> >>>>> The changes in IRA cost made by PR60969, changed the register class of >>>>> this insn output from GENERAL_REGS to IWMMXT_REGS, and the >>>>> redundancies in the insn pattern alternatives description force LRA to >>>>> reload the pseudo, which generates the same iwmmxt_arm_movdi insn, >>>>> which can't be resolved, and so on ... >>>>> >>>>> Removing the redundancies fixes the issue, as LRA find that >>>>> alternative 8 (Uy => y) matches. >>>>> >>>>> This issue is present in 4.9 branch, but latent on trunk (the >>>>> clobbering of IP and CC information added during -fuse-caller-save >>>>> patch changed the register allocation). >>>>> >>>>> Cross compiled and regression tested on ARM targets (but not on an >>>>> IWMMXT one), is it ok for trunk and 4.9 branch ? >>>> >>>> >>>> This looks sane. It doesn't look reasonable for alternatives to be >>>> duplicating each other. >>>> >>>> Given I have neither the time nor the hardware to test this patch on, >>>> I'd rather someone with an interest in iwMMX possibly folks from >>>> Marvell can pick up testing for this patch. >>> >>> Ok, Thanks Ramana, I'll wait for somebody able to test it. Notice, >>> that without this patch on the 4.9 branch, building a cross compiler >>> which default to iWMMXT architectures ICE on that during LRA while >>> building of libgcc. >> >> I got an access to a cubox with an armada 510 and finally managed to >> validate this patch (~ 1week for bootstrap + make check !). So, >> bootstrap is ok and no regession. is it Ok for trunk and branches >> (the issue was observed on 4.9) ? Notice that I've only tested it for >> trunk and I don't plan to validate it on the branches ! ;) > > OK for trunk - Thanks for taking the extra effort to get an armada > board to validate this on. > > it's ok for the branches only if you validate it on the branches. If > someone is interested in the bug fix they can always pick it up
Ok fair enough. Thanks Ramana. Cheers, Yvan