On Sat, Feb 22, 2020 at 06:25:43PM -0600, Peter Bergner wrote: > On 2/20/20 11:33 AM, Peter Bergner wrote: > > Ok, I pushed the trunk fix now. I'll kick off the release branch > > backports now. > > > > Jakub, I know you're getting the GCC 8.4 release ready. Is this fix ok > > for FSF 8 now or do you want me to wait until after 8.4 is out? > > The backport of the PR93658 fix to GCC 8 & 9 showed a few testsuite > regressions. > With Mike's help, we tracked those down to some fixes Mike had applied to > trunk, but did not backport. With the following patch, PR93658 is fixed in > GCC 9 with no regressions. > > GCC 8 is also regression free with the small update to the fragile insn > counting in vss-vector-6-le.c. We made major changes to this test case > in trunk, but I think it's easier to just modify the count in the patch > hunk below. > > Is this still ok for GCC 8 & 9?
Please do each of those backports as separate commits (so that if there is a problem with them, we can bisect it; it also should be easier to do this way, even :-) ) (So backport the oldest first, etc.) > rs6000: Fix infinite loop building ghostscript and icu [PR93658] > > Fix rs6000_legitimate_address_p(), which erroneously marks a valid Altivec > address as being invalid, which causes LRA's process_address() to go into > an infinite loop spilling the same address over and over again. > Include Mike's earlier commits that fix bugs this patch exposes. > > Backport from master > 2020-02-20 Peter Bergner <berg...@linux.ibm.com> > > PR target/93658 > * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX > vector modes. > > * gcc.target/powerpc/pr93658.c: New test. > > Fix PR 93568 (thinko) > > Backport from master > 2020-02-05 Michael Meissner <meiss...@linux.ibm.com> > > PR target/93568 > * config/rs6000/rs6000.c (get_vector_offset): Fix (This changelog was committed truncated like this... If you can find a fuller version, please use that, but don't bother too much). > Adjust how variable vector extraction is done. > > Backport from master > 2020-02-03 Michael Meissner <meiss...@linux.ibm.com> > > * config/rs6000/rs6000.c (get_vector_offset): New helper function > to calculate the offset in memory from the start of a vector of a > particular element. Add code to keep the element number in > bounds if the element number is variable. > (rs6000_adjust_vec_address): Move calculation of offset of the > vector element to get_vector_offset. > (rs6000_split_vec_extract_var): Do not do the initial AND of > element here, move the code to get_vector_offset. > > Fix bad code of vector extract of PC-relative address with variable element #. > > Backport from master > 2020-01-06 Michael Meissner <meiss...@linux.ibm.com> > > * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): > Use 'Q' for doing vector extract from memory. > (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from > memory. > (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for > doing vector extract from memory. > (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector > extract from memory. > > Only for GCC 8: > > * gcc.target/powerpc/vsx-vector-6-le.c: Update fragile insn count. All those are okay to backport. Thanks! Segher