On Thu, Feb 18, 2016 at 11:45 AM, Michael Meissner <meiss...@linux.vnet.ibm.com> wrote: > This patch to rs6000.md (which is essentially the same as #3) fixes the > problem > by removing the early clobber. The patches to predicates.md, and the fusion > tests revert my changes on February 9th that originally 'solved' the problem > by > not allowing fusion of ADDI values. We have tested the fix using a combine > profiled and LTO bootstrap build and it does not cause any regressions. > Because machine independent changes can mask the bug at times, we also did a > profiled/LTO build on the subversion revision that showed up the problem. Is > this ok to install in the trunk? > > Since gcc 5 contains the exact same early clobber, I would like to also back > port the change to GCC 5. > > [gcc] > 2016-02-18 Michael Meissner <meiss...@linux.vnet.ibm.com> > > PR target/68404 > * config/rs6000/predicates.md (fusion_gpr_addis): Revert > 2016-02-09 change. > > * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove > earlyclobber from target. Use wF constraint for fused memory > address. > (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. > > [gcc/testsuites] > 2016-02-18 Michael Meissner <meiss...@linux.vnet.ibm.com> > > PR target/68404 > * gcc.target/powerpc/fusion.c: Revert the 2016-02-09 change. > * gcc.target/powerpc/fusion3.c: Likewise.
This is okay for trunk and GCC 5 branch. Thanks, David