On Wed, Aug 14, 2013 at 06:55:26PM -0400, Michael Meissner wrote: > In running the spec 2006 testsuite with several options, we discovered that > -mtune=power8 (which turns on the -mpower8-fusion option) has a segmentation > fault in two benchmarks: > > 403.gcc when built with -O2 -mcpu=power7 -mtune=power8 -m32 > 435.gromacs when built with -O3 -funroll-loops -mcpu=power7 -mtune=power8 -m32 > > In the gcc case, I tracked it down to the fusion op in the function > strength_reduce in the file loop.c. It was wanting to use the result of the > addis instruction after the loop.
Reminds me of PR57281/PR57300 on i?86/s390, where it was trying to check for dead registers in splitters instead of peephole, but otherwise was similar. Peephole2 is the pass which guarantees the note problem is computed and you can use peep2_reg_dead_p etc. safely, you can't use that in peephole or splitter patterns, and as computing it is expensive, it can't be easily available in too many passes. Jakub