GCC 3.2.1 -> GCC 3.3 compile speed regression

Devang Patel dpatel@apple.com
Sat Feb 1 19:03:00 GMT 2003


	
> This leads me to the following half-baked hypothesis: Some kinds of
> data/information that used to persist across the entire compilation
> are now created and destroyed repeatedly in some local temporal scope,
> like the compilation of a single function.  This hypothesis would
> explain not only the increased number of gc passes, but also the
> overall performance degradation we see (even with gc turned off).

I found following differences in source

1) In alias.c
'reg_base_value' is allocated using ggc_alloc_cleared() instead of 
xcalloc(). And it is done in init_alias_analysis() which is called from 
many places.

2) In except.c
'entry' is allocated now using ggc_alloc() inside add_ehl_entry(). It 
used xmalloc earlier. eh_region is now allocated using 
ggc_alloc_cleared() instead of xcalloc() inside duplicate_eh_region_1().

3) In cselib.c
'elt_list's are now allocated using ggc_alloc() instead of 
obstack_alloc(). Same for 'cselib_val'.

4) spew.c now uses gcc_alloc instead of obstack.

-Devang



More information about the Gcc mailing list