This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch for label handling in flow
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: patch for label handling in flow
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Mon, 25 Jan 1999 22:04:32 -0700
- cc: Philip Blundell <philb at gnu dot org>, egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <19990125201233.F1456@dot.cygnus.com>you write:
> On Mon, Jan 25, 1999 at 08:25:13PM +0100, Philip Blundell wrote:
> > Normally if a label has its address taken, flow will consider it to be a
> > potential target for any computed goto. Unfortunately on the ARM port th
> e
> > prologue used for functions compiled as PIC includes such a label.
>
> I don't see how the arm port is using ".+4" and ".+8" without doing
> anything to make certain that those instructions really stay together.
> Seems like scheduling could really mess that up. Could be the only
> reason this hasn't shown up earlier is the protection given by the
> erroneous CFG. Or perhaps I miss something?
>
> FWIW, the sparc port uses a symbol_ref in its gp load sequence.
I agree. I don't see anything which would prevent this lossage. Either the
insns need to be surrounded by scheduling/optimization barriers or put into
a single insn (at which point you don't have to expose the label into rtl
anyway).
jeff
ps. I'm not sure it's really kosher for the sparc to use a SYMBOL_REF
instead of a LABEL_REF for this purpose. But that's a totally different
discussion.