This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 04/25] SPECIAL_REGNO_P
- From: Jeff Law <law at redhat dot com>
- To: Andrew Stubbs <ams at codesourcery dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 4 Oct 2018 12:27:55 -0600
- Subject: Re: [PATCH 04/25] SPECIAL_REGNO_P
- References: <cover.1536144068.git.ams@codesourcery.com> <a02c39933eaad0ade4276dd9b55f6fc6ab1954ce.1536144068.git.ams@codesourcery.com> <85ef6d30-228a-af0f-55ef-dfde8e89f36f@redhat.com> <e6979716-29c7-aa73-b297-0ef09c3232ea@codesourcery.com> <1480c0db-e2c0-5eef-40a8-f7f03f3283af@codesourcery.com>
On 9/13/18 4:01 AM, Andrew Stubbs wrote:
>
> The register that find_rename_reg is considering is SCC, which is one of
> the "special" registers. There is a short-cut in rename_chains for
> fixed registers, global registers, and frame pointers. It does not
> check HARD_REGNO_RENAME_OK.
I wonder if it expects the caller to have avoided putting these
registers in the chain.
>
> The assert is caused because the def-use chains indicate that SCC
> conflicts with itself. I suppose the question is why is it doing that,
> but it's probably do do with that being a special register that gets
> used in split2 (particularly by the addptrdi3 pattern). Although, those
> patterns are careful to save SCC to one side and then restore it again
> after, so I'd have thought the DF analysis would work out?
If you have SCC before its first set, then DF is going to think the SCC
register is live at function entry.
Jeff