This is the mail archive of the
mailing list for the GCC project.
Re: Followup for reg_equiv_invariant patch: Fix PR39871
- From: Jeff Law <law at redhat dot com>
- To: Bernd Schmidt <bernds at codesourcery dot com>
- Cc: IainS <developer at sandoe-acoustics dot co dot uk>, GCC Patches <gcc-patches at gcc dot gnu dot org>, "Vladimir N. Makarov" <vmakarov at redhat dot com>
- Date: Mon, 02 Aug 2010 09:38:43 -0600
- Subject: Re: Followup for reg_equiv_invariant patch: Fix PR39871
- References: <4C16B0B4.firstname.lastname@example.org> <email@example.com> <4C1702DD.firstname.lastname@example.org> <email@example.com> <4C175C23.firstname.lastname@example.org> <4C1A9971.email@example.com> <9A4C9FCF-2527-4BCA-B217-F835012D5A57@sandoe-acoustics.co.uk> <4C54373F.firstname.lastname@example.org> <4C56DD7F.email@example.com> <4C56DE58.firstname.lastname@example.org>
On 08/02/10 09:03, Bernd Schmidt wrote:
On 08/02/2010 05:00 PM, Jeff Law wrote:
If IRA is able to find an alternate hard reg for the pseudo, then it'll
clear that pseudo's entry from spilled_pseudos. However, a pseudo which
is spilled for which no alternate hard reg is found will have its bit
left on in spilled_pseudos.
BTW, the change to wipe spilled_pseudos at the beginning of reload is
Actually, I think some IRA code wants to wipe it in the process of
trying to reallocate them. So I think a gcc_assert that it's empty
afterwards is probably better once we fix whatever IRA bug we've found.
The replace_pseudos_in probably is OK as well, I'm just
curious why we haven't seen the need for testing invariants in that code
prior to now.
Probably because now we're using costs, and pseudos that are
reg_equiv_invariant end up not allocated more often. Plus, it was
replacing inside CALL_INSN_FUNCTION_USAGE, which probably doesn't
contain such pseudos very often.