Cgraph Modification Plan
Jan Hubicka
hubicka@ucw.cz
Thu Sep 6 04:33:00 GMT 2012
> On 9/5/12, Xinliang David Li <davidxl@google.com> wrote:
> > On Sep 5, 2012 Jan Hubicka <hubicka@ucw.cz> wrote:
> > > OK, the basic idea is that symtab_node is basetype of
> > > cgraph_node and varpool_node. We may want to drop the historica
> > > cgraph/varpool names here, since function_node/variable_node
> > > would sound better. Cgraph still exists, but varpool is more
> > > or less historical relic.
> >
> > The cgraph redesign probably deserves more discussion.
>
> Hence, the post!
>
> > 1) It may be worthwhile to abstract the graph manipulation code
> > into a utility class which is templatized.
> >
> > graph<T>, node<T> with node inheriting from T.
>
> While I won't dispute the statement, getting from here to there
> will likely involve some intermediate steps.
Commonizing some of cfg/cgraph/ssa graph handling would not hurt, but
there is not _that_ much code in common - we do some strongly connected
components discovery on all three kinds of graphs and basic traversals.
>
> > 2) Introduce a global symbol table containing a function table
> > and a global variable table. The function table should replace
> > the current cgraph node link list, and the variable table replaces
> > the varpool. The symbol table should provide basic interfaces to
> > do named based lookup, traversal, alias handling etc. I noticed
> > trunk already has some of that -- but it seems more abstraction
> > is needed.
>
> Do you mean moving away from a pointer-based approach?
I would say that trunk now have what is described here. I still plan to unify
some of code (like alias handling) that is split for historical reasons, but
those are mostly cleanups still intended for 4.8.
Honza
More information about the Gcc
mailing list