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.