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: [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.

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 :-) 


Sebastian


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