http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53880
Steven Bosscher <steven at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW Known to work| |4.7.1 Known to fail| |4.8.0 --- Comment #25 from Steven Bosscher <steven at gcc dot gnu.org> 2012-07-30 12:03:25 UTC --- AFAICT, the only way that gt_pch_p_9line_maps can be called, is from ggc-common.c:gt_pch_save (via note_ptr_fn). The "op" argument will be relocate_ptrs, so all calls are for pointer-rewriting and there are so many of them simply because the linemaps structure is so big if we're tracking macro expansions on a library as big as Boost. It looks like this is the only note_ptr_fn callback left (if there were any others to begin with) so a first simple speed-up could be to rip out this callback stuff and just call relocate_ptrs directly. That would eliminate millions of costly indirect calls. Even better would be to reduce the size of line_maps, but I don't see how.