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] Removal of gotos from cfg based ir


> On Fri, 2003-11-14 at 20:11, Richard Henderson wrote:
> > On Fri, Nov 14, 2003 at 05:09:57PM -0700, law@redhat.com wrote:
> > > OK.  Thanks for clarifying.  I need to re-think my position on this
> > > whole discussion.  Something still doesn't feel right, but I'm more and
> > > more inclined to give it a try.
> > 
> > I think I'm mostly in favour.  I am aware of Jan's work in 
> > rtl-land with cfglayout mode, and it really does seem to
> > simplify some things there.
> > 
> > I do like the idea of preserving the CFG between trees and
> > rtl, if for no other reason than it seems wasteful to throw
> > it away and start over, especially when it appears to be so
> > trivial to preserve it.
> > 
> > And, given that, it doesn't seem wrong to go one step 
> > farther and claim that's part of the tree->rtl interface.
> > 
> 
> Sure, the implication however is that if you don't want to run SSA, you
> are going to have to build a CFG on the trees in order to generate rtl,
> or have 2 ways into rtl.

As discussed earlier, we do build CFG anyway in order to work on RTL and
we don't lose any performance building CFG earlier as indicated by
benchmarks I sent earlier (and in fact we save some CPU cycles now), so
this does not seem to be disasterous as well and I would ineed to prefer
this choice.

The CFG aware expansion is about 100 lines currently, so I can do the
duplication too.  (only what need to be CFG aware is expansion of
control flow statements.  We currently have
COND_EXPRs/SWITCH_EXPRs/RETURN_EXPRs/EH stuff.  Not too many of them and
most of the code can be shared in between CFG aware and unaware code
path.

Honza
> 
> Andrew
> 
> 


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