On Wed, Feb 19, 2020 at 09:17:26PM -0600, Peter Bergner wrote: > PR93658 shows a problem in rs6000_legitimate_address_p() where we erroneously > mark an Altivec address as being invalid, which causes LRA to go into an > infinite loop spilling the same address over and over again. The problem > is, when VSX is enabled, the rs6000_vector_mem[<vector mode>], returns > VECTOR_VSX rather than VECTOR_ALTIVEC, causing us to not handle Altivec > load/store addresses correctly. The following patch tests for both > and fixes the test case.
Ooh you found the problem, that was fast, great! > This passed bootstrap and regtesting on powerpc64le-linux and powerpc64-linux > (in both 32-bit and 64-bit modes) with no regressions. Ok for trunk? > The same bug exists in FSF 9 anf FSF 8 branches. Ok for those too after > some burn in on trunk and clean regtests on the backports? Okay for all. You may want to check it into 9 a bit faster than usual, to meet the release schedule. It should be perfectly safe enough for that. Do run the regstraps, of course ;-) Thanks! Segher > gcc/ > PR target/93658 > * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX > vector modes. > > gcc/testsuite/ > PR target/93658 > * gcc.target/powerpc/pr93658.c: New test.