This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [rfc] Moving bbs back to pools
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Zdenek Dvorak <rakdver at kam dot mff dot cuni dot cz>
- Cc: gcc at gcc dot gnu dot org, dberlin at dberlin dot org
- Date: Fri, 8 Jun 2007 09:06:28 +0200
- Subject: Re: [rfc] Moving bbs back to pools
- References: <20070607110422.GA14555@kam.mff.cuni.cz>
> Hello,
>
> as discussed in http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01133.html,
> it might be a good idea to try moving cfg to alloc pools. The patch
> below does that for basic blocks (each function has a separate pool
> from that its basic blocks are allocated). At the moment, the patch
> breaks precompiled headers, but otherwise bootstraps and passes
> regtesting.
Since precompiled headers are C++ only that is unit-at-a-time, I think
we can arrange things in cgraph so the functions are not lowered yet at
PCH point. I tried this plan once and abadoned it because of some
dificulties I forgot but I can try again.
>
> The problem is, that it does not give any speedups (it is almost
> completely compile-time neutral for compilation of preprocessed
> gcc sources). I will check whether moving also edges to pools
> changes anything, but so far it does not seem very promising :-(
Well, the benefits of these things are always very dificult to predict
:(. We later tweaked ggc-page to put basic blocks into
extra_order_size_table that ight've improved locality and get back some
part of the original 1% slowdown.
I would expect edges to be more interesting since they are smaller and
there are more of them but I might be mistaken.
This approach might be also very interesting for GIMPLE tuples once they
arrive I woudl say so I like it in general.
Honza