Hi Richard,
On 30 March 2017 at 09:13, Richard Biener <rguent...@suse.de> wrote: > On Wed, 29 Mar 2017, Jeff Law wrote: > >> On 03/29/2017 04:05 AM, Richard Biener wrote: >> > >> > After quite some pondering over this and other related bugs I propose >> > the following for GCC 7 which tames down PRE a bit (back to levels >> > of GCC 6). Technically it's the wrong place to fix this, we do >> > have measures in place during elimination but they are not in effect >> > at -O2. For GCC 8 I'd like to be more aggressive there but that >> > would require to enable predictive commoning at -O2 (with some >> > limits to its unrolling) to not lose optimization opportunities. >> > >> > The other option is to ignore this issue and postpone the solution >> > to GCC 8. >> > >> > Bootstrapped / tested on x86_64-unknown-linux-gnu. >> > >> > Any preference? >> > >> > Thanks, >> > Richard. >> > >> > 2017-03-29 Richard Biener <rguent...@suse.de> >> > >> > PR tree-optimization/77498 >> > * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications >> > to non-constants over backedges. >> > >> > * gfortran.dg/pr77498.f: New testcase. >> I've got a slight preference for this patch. >> >> If you had a good start on the real fix then I'd lean more towards >> postponing. > > I wouldn't it yet call "real fix" but just an idea (where I tested the > PRE side already, with the expected testsuite regressions). I've done > no benchmarking at all for that. For the proposed patch the situation > is that we're only going to remove some PRE that was done additionally > over GCC 6 because of the rev. that caused the regression, so I have > confidence that it won't make things worse when comparing to GCC 6. > > Thus I've now applied the patch. > With this patch, the following testcase now fails on arm* targets: gcc.dg/tree-ssa/pr71347.c scan-tree-dump-not optimized ".* = MEM.*;" I'll have to rebuild manually if you need the dumps, let me know. Thanks, Christophe > Richard.