This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix i386 tablejump problem
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Richard Henderson <rth at redhat dot com>, jh at suse dot cz, gcc-patches at gcc dot gnu dot org
- Date: Wed, 19 Dec 2001 13:30:01 -0500
- Subject: Re: [PATCH] Fix i386 tablejump problem
- References: <20011219184415.A542@sunsite.ms.mff.cuni.cz> <20011219101851.C16706@redhat.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Dec 19, 2001 at 10:18:51AM -0800, Richard Henderson wrote:
> On Wed, Dec 19, 2001 at 06:44:15PM +0100, Jakub Jelinek wrote:
> > The documentation isn't very clear on whether JUMP_INSN with JUMP_LABEL
> > and REG_LABEL note counts as 2 uses of the label or just one and what
> > happens if one insn have 2 or more REG_LABEL notes.
>
> Err, the documentation is quite clear that REG_LABEL is
> used by non-JUMP_INSNs. A JUMP_INSN should never have one,
> with or without JUMP_LABEL.
That used to be the case.
Since Alex's patch from January this is no longer true:
@findex REG_LABEL
@item REG_LABEL
This insn uses @var{op}, a @code{code_label} or a @code{note} of type
@code{NOTE_INSN_DELETED_LABEL}, but is not a
@code{jump_insn}, or it is a @code{jump_insn} that required the label to
be held in a register. The presence of this note allows jump
optimization to be aware that @var{op} is, in fact, being used, and flow
optimization to build an accurate flow graph.
Jakub