https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69614
--- Comment #9 from ktkachov at gcc dot gnu.org --- You're right. Any change in the flags or to the code that appears to makes the failure go away just happens to reduce register pressure. In the failing case the reload dump shows that LRA does much more work than in the non-failing case. I'm not very familiar with the operation of LRA so it's hard to figure out exactly what's going on but it calculates pseudo live ranges more times and tries more coalescing attempts