This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch to fix PR83712
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 10 Mar 2018 05:30:53 -0800
- Subject: Re: patch to fix PR83712
- Authentication-results: sourceware.org; auth=none
- References: <5d72622b-a0bc-ec13-5cf3-e7573cba245e@redhat.com>
On Fri, Mar 9, 2018 at 8:16 AM, Vladimir Makarov <vmakarov@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.