https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55442

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to David Fendrich from comment #0)
> My guess is that this has something to do with unlimited memoization?

Yes.

GGC memory                                           Garbage            Freed  
          Leak        Overhead            Times
--------------------------------------------------------------------------------------------------------------------------------------------
[...]
cp/constexpr.c:1761 (cxx_eval_call_expression)           0 :  0.0%        0 : 
0.0%       73M: 18.5%        0 :  0.0%     2340k
cp/constexpr.c:1420 (cxx_bind_parameters_in_call       182M: 96.7%        0 : 
0.0%      182M: 46.2%        0 :  0.0%     9362k

Both of these are involved with caching the values of constexpr calls.  Looking
at the code, it seems that we do the second allocation even when we get a cache
hit, and then don't free it, so it builds up until we can do GC later.

Reply via email to