This is the mail archive of the
mailing list for the GCC project.
Re: IRA patch: move clobbers downwards
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: Bernd Schmidt <bernds at codesourcery dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, "Vladimir N. Makarov" <vmakarov at redhat dot com>
- Date: Tue, 13 Jul 2010 11:59:22 +0200
- Subject: Re: IRA patch: move clobbers downwards
- References: <4C3C34B4.email@example.com>
On Tue, Jul 13, 2010 at 11:41 AM, Bernd Schmidt <firstname.lastname@example.org> wrote:
> This is an older patch I'm resubmitting. ?The scheduler can move reg
> clobbers away from the insns for which they were generated, generating a
> window during which IRA thinks the register is live when it isn't. ?This
> can cause unnecessary conflicts.
> The real problem here is that IRA does a backwards scan; just as in
> peep2, it would probably be better to use a forwards scan using REG_DEAD
> notes. ?However, I'm told it's expensive to create those.
A backward scan is what practically every compiler (and every text
book) except GCC uses, so that can't really be the "real problem".
I'd say the real problem is that the clobbers are moved, or generated
at all for registers that are not live anyway. Are those clobbers
necessary? Can they be removed instead?