On Mon, 17 Aug 2009, Diego Novillo wrote: > I am merging free_lang_data, which is an IPA pass that scrubs all > types and symbols from any front end language information. > > After free_lang_data all types and symbols are in gimple form. > This form is much leaner in terms of memory utilization and since > it does not rely on the presence of the front end, it can be > streamed to disk for LTO. > > The biggest side-effect right now is that many debug hooks stop > working because the information just isn't there. So part of all > this is to recognize when debug information is requested and > save it so that it can be used from debug hooks. > > Currently, the pass bootstraps all languages but since debug > information is disabled, all the debugging tests in the testsuite > fail. > > Since the patch is rather large and it affects the other LTO > merge activities, I've been thinking about ways of making it > easier and avoid conflicts: > > 1- Keep working on my local tree; combining both free_lang_data and > early debug generation. > > 2- Add free_lang_data to trunk with a gate function that only > triggers it if -g is missing. > > 3- Add free_lang_data to trunk with a gate function that enables > it only if a special flag is given on the command line. > > > My obvious preference is #2 because that will simplify our > merging activities and will also allow wider testing for > free_lang_data in the trunk.
I definitely would prefer #2. If it even passes bootstrap-debug (or how it is called - verify that the code generated with/without -g is the same) then IMHO it would be a no-brainer. > My second preference would be #3, > which would at least get the code in trunk. Well - with that reasoning we could simply merge all of LTO now ... which I wouldn't mind either ;) > Other than latent bugs, the main observable difference with this > patch in trunk will be reduced memory consumption at > compile-time, particularly for C++ (free_lang_data removes quite > a bit of cruft). > > I am attaching the WIP patch for reference. I would appreciate > feedback on this plan. I'd say go for #2. #3 doesn't make much sense to me in isolation. Thanks, Richard.