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