This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa Too many edges in CFG
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: Richard Henderson <rth at redhat dot com>
- Cc: Jason Merrill <jason at redhat dot com>,Andrew MacLeod <amacleod at redhat dot com>,Diego Novillo <dnovillo at redhat dot com>,Jeff Law <law at redhat dot com>,gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 8 May 2003 12:53:31 -0400
- Subject: Re: [tree-ssa Too many edges in CFG
On Thursday, May 8, 2003, at 12:34 PM, Richard Henderson wrote:
On Thu, May 08, 2003 at 12:03:16PM -0400, Jason Merrill wrote:
But only because of how non-Sparse PRE works.
Morgan says that some algorithms, including PRE, break down if not all
execution paths lead to the exit block. I don't know whether that's
of our implementation, but it seems like a reasonable invariant.
I see that yall have already come to a decision, but I'd brought
this up in the first place because Not having an edge from noreturn
functions is the way things work on the rtl side of the fence.
As for PRE, we have a function that goes in and adds fake edges
for the duration of the algorithm that needs them, and takes them
SSAPRE does not need fake exit edges.
In fact, Open64 specifically ignores the fake exit edges when doing
ESSA renaming (in particular, when determining where exit occurrences
opt_eocc.cxx:if (bb->Kind() == BB_EXIT && bb != Cfg()->Fake_exit_bb())