On Tue, Apr 12, 2016 at 10:53:22AM -0400, Jason Merrill wrote:
> It doesn't seem that dangerous to me.  The decls are only used within
> constexpr evaluation, they never escape.

The uids can be used in hashing, folding, for the various on the side
tables (value-expr, debug-expr, ...).

> >Or perhaps revert the recent constexpr speedup/memory usage changes, reapply
> >on the trunk after 6.1 is branched, stabilize and then consider backporting
> >for 6.2 if it works well?
> 
> As I mentioned before, it seems to me that the problem is with GC changing
> the number of function copies created; we should be able to just stop
> deleting the copies table and that should fix things.  I've posted such a
> patch to the BZ.

We need to wait for Tobias as the reporter with the non-public testcase,
the other testcases can be as well fixed by the patch I've posted.
Though, by not deleting anything, it could just grow too much.

As I said in the PR earlier, at least (if not already done) the whole
constexpr tables should be flushed at the end of parsing, so that enough
spare memory can be used for the GIMPLE passes when it is quite unlikely
further constexpr processing will happen.

        Jakub

Reply via email to