[Bug c++/70594] [6 Regression] -fcompare-debug failure
nathan at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 8 21:23:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70594
--- Comment #14 from Nathan Sidwell <nathan at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #13)
> If you remove the deletableness, then I'd say it is really important to
> empty the whole freelist at least at the end of parsing, so that when GIMPLE
> optimizations and RTL optimizations run memory is not occupied by those
> anymore.
Makes sense.
> And perhaps instead of GC use some LRU eviction from the freelist if there
> are too many constexpr functions on the freelist (but it certainly shouldn't
> be dependent on stuff like free memory or GC etc.), so that builds are
> reproduceable. There could be some --param with some sane defaults on how
> many functions in freelist can be kept.
Good idea. I guess the right place is in cxx_eval_call_expression, when we
find we're inserting a new entry we should zap its current contents if it is
'too large'.
To be specific, I mean changing constexpr_call_table, which holds call
results. Not changing the fundef_copies_table, which holds lists of copied
functions and can remain GC-deletable.
More information about the Gcc-bugs
mailing list