This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] callgraph and unit at time compilation
> Hi,
>
> On Sat, Nov 16, 2002 at 10:11:19AM +0100, Jan Hubicka wrote:
> >
> > Yes, I would like to have this frontend independent, however at the
> > moment inlining it handles is frontend dependent. I tried to keep it
> > isolated as much as I can.
> > I will take a look at AST's callgraph builder shortly.
> >
>
> The role of this call graph builder (dumper) was to externalise call graph
> optimizations. For the moment it just dumps the call graph under
> a file representation (a parenthesized representation of a graph is in EXP
> space... and thus it is a too heavy representation compared to your
> implementation that holds the call graph in memory.)
>
> You can see this implementation as the construction of small databases
> stored in XML files. The end of the call graph optimization consists in
> gathering all these small databases into a global one (linking... ala
> Open64's -IPA) and finally on this graph doing all the optimizations.
OK, I will take a look at your implementation and try to cook something
together.
Having external database-like callgraph reprezentation is definitly good
idea even if we won't use it until problem of dumping rest of
datastructures is finished.
>
> Open64 uses a WHIRL (AST) dumper, and its output is a .o file.
> Compilation is done only at the "linking" time when all the information
> about a project is gathered in a global AST. On this AST a call graph is
> built and then optimized. An overview of Open64's architecture can be found at:
>
> http://www-rocq.inria.fr/~pop/doc/ipa.html
>
> The reason I implemented this dumper was to refine the implementation of
> the c-pretty printer for all the functions nodes.
> Of course another reason was for playing a little with the call graph :-)
:) Same for me.
Too bad I didn't noticed you done that earlier (I wanted to take a look
but didn't have time any my code is simple enought to worth as
experiment)
Honza
>
>
> Sebastian