On Fri, Mar 9, 2018 at 8:16 AM, Vladimir Makarov <vmaka...@redhat.com> wrote: > The following patch fixes > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83712 > > It is another "cannot find a spill reg for reload" problem. LRA has already > a code splitting hard reg live ranges to avoid such problem. This code is > in LRA inheritance pass. Unfortunately, the code does splitting for small > class pseudos only. This PR is a more complicated code and it is hard to > adapt the inheritance sub-pass to reliably solve such problems. > > To fix the PR, I added a sub-pass which works in very rare cases after we > already found that we have no hard regs for a reload pseudo. It tries to > split a hard reg live range for the pseudo. After that it tries again to > assign a hard reg to the pseudo. The patch changes LRA-subpass flow for > this. I hope that the patch will finally solved all such problems but I am > not sure to be completely certain. > > The patch was bootstrapped and tested on x86-64 and ppc64. > > Committed as rev. 258390. >
This caused: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84806 -- H.J.