This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug pch/53880] [4.8 Regression] compile time regression when generating precompiled headers for boost


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]