This is the mail archive of the
mailing list for the GCC project.
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, firstname.lastname@example.org 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.