A recent patch increased GCC's memory consumption in some cases!

Jan Hubicka jh@suse.cz
Fri Apr 7 11:48:00 GMT 2006


> 
> comparing Gerald's testcase PR8361 compilation at -O1 level:
>   Overall memory allocated via mmap and sbrk increased from 108456k to 144940k, overall 33.64%
>   Peak amount of GGC memory allocated before garbage collecting increased from 95144k to 132081k, overall 38.82%
>   Peak amount of GGC memory still allocated after garbage collectin increased from 93152k to 97084k, overall 4.22%
>   Amount of produced GGC garbage decreased from 559402k to 471302k, overall -18.69%

Hi,
this is caused by early inlining finally being effective after Richard's
patch, but not collecting garbage.   Bootstrapped/regtested x86_64-linux
and comitted.

2006-04-07  Jan Hubicka  <jh@suse.cz>
	* ipa-inline.c (cgraph_early_inlining): Collect garbage.
Index: ipa-inline.c
===================================================================
*** ipa-inline.c	(revision 112732)
--- ipa-inline.c	(working copy)
*************** cgraph_early_inlining (void)
*** 1219,1225 ****
        if (node->analyzed && node->local.inlinable
  	  && (node->needed || node->reachable)
  	  && node->callers)
! 	cgraph_decide_inlining_incrementally (node, true);
      }
    cgraph_remove_unreachable_nodes (true, dump_file);
  #ifdef ENABLE_CHECKING
--- 1219,1228 ----
        if (node->analyzed && node->local.inlinable
  	  && (node->needed || node->reachable)
  	  && node->callers)
! 	{
! 	  if (cgraph_decide_inlining_incrementally (node, true))
! 	    ggc_collect ();
! 	}
      }
    cgraph_remove_unreachable_nodes (true, dump_file);
  #ifdef ENABLE_CHECKING



More information about the Gcc-patches mailing list