This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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