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: [call graph, patch] Reuse call graph nodes


> Hi,
> 
> On Sat, Sep 13, 2008 at 01:47:50PM +0200, Jan Hubicka wrote:
> > I think it might be interesting trying same change for
> > nodes; after all early inliner produces tons of clones that makes tables
> > sparse too.  Then it would be interesting to see how sparse the tables
> > are, as tables of pointers would be probably somewhat more robust (and
> > slow) than what we have now.
> 
> Here we go then, this patch reuses node structures in the same way we
> do it for edges.  It has been bootstrapped and tested on
> x86_64-suse-linux, revision 140555.
> 
> I  have had  a brief  look at  what the  vector memory  statistics are
> without  and  with  the  patch  when compiling  tramp3d  with  -O2  on
> i686-linux.   Without the  patch,  check_create_node_params is  listed
> three times,  taking up roughly  1MB, 2MB and 2MB  respectively, after
> the patch  is applied  the function is  listed only twice  with almost
> 474kB both times.  So I guess it is an improvement worth applying now.
> OK?
> 
> Thanks
> 
> Martin
> 
> 
> 
> 2008-09-23  Martin Jambor  <mjambor@suse.cz>
> 
> 	* cgraph.c (free_nodes): New variable.
> 	(NEXT_FREE_NODE): New macro.
> 	(cgraph_create_node): Reuse nodes from the free list.  Do not
> 	update uid if doing so.
> 	(cgraph_remove_node): Add the node to the free list.

OK

Honza


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