As a follow up to our proposal to improve memory management in the
compiler, we plan to proceed in two parts:

* A transition plan to quickly remove gengtype out of the picture.
This has become the main blocker for several C++ cleanups.  The
transition here is to move all the GTY() structures to use
user-provided markers.  With this, we are pretty sure that we can
minimize the role of gengtype to the point that it doesn't need to
understand C++.  We would keep our current GC and PCH
implementations unchanged.  This will be ready for the 4.9 release.

* Start implementing memory pools for data structures that do not need
to be in PCH images.  It is still not clear what types of memory pools
we will need, but at a minimum we are thinking of a permanent pool,
per-pass pools and at least one or two stage-based pools (e.g., front
ends).  We may be able to have some implemented for the 4.9 release.

* As far as PCH is concerned, we are considering 2 alternatives: (a)
move to a type streamer based on the work in the PPH branch
(http://gcc.gnu.org/wiki/pph), (b) get rid of it completely, as this
feature will be obsoleted by C++ modules
(http://gcc.gnu.org/ml/gcc/2012-11/msg00468.html).  We do not really
think that option (b) is advisable until C++ modules are a more
concrete reality.

Thoughts?


Thanks.  Diego.

Reply via email to