On Thu, 11 May 2017, Rainer Orth wrote: > Hi Richard, > > > On Mon, 24 Apr 2017, Richard Biener wrote: > >> > >> One issue in PR79201 is that we don't sink pure/const calls which is > >> what the following simple patch fixes. > >> > >> Bootstrap and regtest running on x86_64-unknown-linux-gnu. > > > > Needed some gimple_assign_lhs -> gimple_get_lhs adjustments and > > adjustment of gcc.target/i386/pr22152.c where we now sink the > > assignment out of the pointless loop. Not sure what the original > > bug was about (well, reg allocation) so I simply disabled sinking > > for it. > > > > Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk. > > > > Richard. > > > > 2017-04-25 Richard Biener <rguent...@suse.de> > > > > PR tree-optimization/79201 > > * tree-ssa-sink.c (statement_sink_location): Handle calls. > > > > * gcc.dg/tree-ssa/ssa-sink-16.c: New testcase. > > * gcc.target/i386/pr22152.c: Disable sinking. > > however, gcc.target/i386/pr22152.c FAILs now for 32-bit: > > FAIL: gcc.target/i386/pr22152.c scan-assembler-times movq[ \\\\t]+[^\\n]*%mm 1
I remember seeing this and was not able to make sense of the testcase which was added to fix some backend issue. Disabling sinking doesn't work (IIRC) as it is required to generate the original code as well. Uros added the testcase in 2008 -- I think if we want to have a testcase for the original issue we need a different one. Or simply remove the testcase. Richard.