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 16:13, Richard Henderson wrote:
> On Fri, Nov 14, 2003 at 11:16:45AM -0500, Andrew MacLeod wrote:
> > Normally, it would only be a CALL_EXPR inside the abnorm wouldn't it? 
> 
> No.  Functions often return values.
> 
Ah yes.

> > If thats the case, and we'd have to wrap every MODIFY like this, couldnt
> > we come up with a way of treating an entire block as a list of possible
> > trapping stmts, and do something different to handle that kind of beast?
> > They are all going to the same location aren't they? 
> 
> If they really all do trap, then they will all be in different 
> basic blocks, one to a block.  Of necessity.  If you try to do
> differently, you'll screw up the data flow.
> 

yeah, I was drawing it out here. gross :-)

> > why not just create one in RTL land when we need it using the
> > same datastructures?  I dont think at -O0 I want a CFG in either IL,
> 
> We *always* need a CFG in rtl.  We need it for register allocation.
> 
So Ive been told. so we have a cfg.

> > and it seems like a restriction to force entry into RTL to have a CFG
> > already created.  I dont think the front end and the back end ought to
> > be that tightly coupled...
> 
> Ah hah, that's a point of disconnect.  The front end should only
> call tree_rest_of_compilation, and then *everything* happens there
> behind the scenes.  This is, shockingly, a vast improvement over
> the situation on mainline.

Errr, thats more or less what I said isn't it? they should not be
tightly coupled. The F/E calls rest_of_compilation(). It doesn't have to
pass a CFG to tree-ssa, it passes GENERIC.  In the same vein, tree-ssa
ought to have a clean entry point to the RTL optimizer. In my mind,
tree-ssa generates GIMPLE/GENERIC, and passes it on. nothing else.
Someone could stick IPA between tree-ssa and rtl this way if they want,
or the could stick it between F/E and tree/SSA. or both.  I dont think
tree-ssa ought to be passing a CFG to anyone. it should be passing a
clean IL to the next phase, which happens to be the translation into
RTL.

Andrew 


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