This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

LTO merge - free_lang_data


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.  My second preference would be #3,
which would at least get the code in trunk.

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.


Thanks.  Diego.

Attachment: 20090817-free-lang-data.diff.txt.gz
Description: GNU Zip compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]