This is the mail archive of the gcc-patches@gcc.gnu.org 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


In message <20030508151341.GA14715@tornado.toronto.redhat.com>, Diego Novillo w
rites:
 >On Wed, May 07, 2003 at 02:25:20PM -0700, Richard Henderson wrote:
 >> On Tue, May 06, 2003 at 08:50:06PM -0600, law@redhat.com 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.
But for a non-returning function the edge to the exit block can never
execute.

I know we've introduced fake edges in the CFG in the past to deal with
corner cases in some of the dataflow algorithms.  But the more I think
about it, the more I think we don't need edges from nonreturning 
functions to the exit block.  At the least they should be fake edges if
we must keep those edges to make other code happy.

[ And any insertion queued for a fake edge can be ignored since the
  edge can never be traversed. ]


Jeff


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