tree-eh.c vs. CFGs

Stuart Hastings stuart@apple.com
Thu Jun 17 20:01:00 GMT 2004


I've been working on the tree-profiling-branch, teaching the inliner to 
work with CFGs.  Since profiling info is hung off CFGs, the inliner 
must work with CFGs in order to do profile-driven inlining.  I have 
this working for C.  The C++ compiler currently fails to build 
libstdc++; the problem seems to be that the inliner doesn't run before 
tree-eh.c anymore.

I'm not a C++ person, so I may have misunderstood something, but it 
appears

1) tree-eh.c currently works on GENERIC parse trees
2) tree-eh.c expects that inlining has been done
3) tree-eh.c makes non-trivial changes to the CFG

In short, both the inliner and tree-eh.c want the other to run first.

I believe the Right Thing to do is revise tree-eh.c to work on CFGs.  I 
can do this, but not quickly; I suspect there are several folks in the 
community that could do this in less time and with fewer bugs than I, 
but you're all probably busy with other stuff.

Assuming I've diagnosed this correctly (I'm very confident that RTH 
will correct any misconceptions I have :-) and tree-eh.c gets revised, 
next I have to deal with the "remove_useless_stmts" pass; it needs a 
similar revision (I have disabled it in my working tree).  After that, 
Java (possibly Ada?).

My point in writing is to a) confirm my diagnosis so I don't waste 
time, and b) solicit help.

Before I embark upon this, um, "exceptional" journey, would anyone else 
like to volunteer?  :-)

stuart hastings
Apple Computer



More information about the Gcc mailing list