This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa Too many edges in CFG

On Thu, 2003-05-08 at 11:13, Diego Novillo wrote:
> On Wed, May 07, 2003 at 02:25:20PM -0700, Richard Henderson wrote:
> > On Tue, May 06, 2003 at 08:50:06PM -0600, wrote:
> > > +       /* Some calls are known not to return.  For such calls we need to
> > > + 	 add an edge to the exit block.  No fall thru edge is needed
> > > + 	 as these calls can not return in the normal sense.  */
> > 
> > Why do you need an edge to the exit block?
> > 
> I don't think we use that for anything right now.  In the future,
> the predecessor blocks of EXIT_BLOCK_PTR will be the blocks where
> we want to put copy-out operations for globals and statics.

That won't be good enough, we're going to need those copy-out operations
before all function call locations anyway, so its automatically going to
happen before the no-return call. That makes the edge extraneous anyway.

> Granted, for things like abort() this will probably not be
> necessary.  Another alternative is to not place the edge and look
> for blocks with no successor.  I'm indifferent to what we decide
> to use here.

All call locations and all predecessors of the exit block should be
sufficient I think.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]