On Fri, Jul 24, 2009 at 09:43, Jan Hubicka<hubi...@ucw.cz> wrote: >> This merge brings in unit-at-a-time gimplification, so it needed some >> tweaking. Mostly, it helped to find out some GENERIC that was leaking >> into the streamer. A pleasant side-effect of the unit-at-a-time >> gimplification is that not every function is gimplified, so there is >> less gunk to pickle out (thanks richi!). > > The cgraph code in early optimization should remove all the > unreachable functions, so what you pickle when function get gimplified > but removed afterwards?
No, these were functions that we never gimplified at all. They still had their DECL_SAVED_TREEs, so I just made free_lang_data remove those. Some of them even had cgraph nodes associated with them (because the front end eagerly created them), others didn't even have a cgraph node. I suspect that clearing DECL_SAVED_TREE in free_lang_data may be papering over a few issues. It would be better if the FE didn't create cgraph nodes so eagerly, but that's a cleanup for another branch. The cgraph is still a bit too tied into the FEs (some of it is even unavoidable). Diego.