> 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

Reply via email to