diff options
author | Jason Merrill <jason@redhat.com> | 2019-06-04 10:47:40 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2019-06-04 10:47:40 -0400 |
commit | ecdcd56094cadc7bd3c18a0edd19f00d670e0d9b (patch) | |
tree | 6c44b508c28bc1e7f1f7141324f204af83dcb7f2 /gcc/tree-ssa-loop-niter.c | |
parent | c790e3ece633d7e566f15b4df389ad8aefd9b78a (diff) | |
download | gcc-ecdcd56094cadc7bd3c18a0edd19f00d670e0d9b.zip gcc-ecdcd56094cadc7bd3c18a0edd19f00d670e0d9b.tar.gz gcc-ecdcd56094cadc7bd3c18a0edd19f00d670e0d9b.tar.bz2 |
Reduce accumulated garbage in constexpr evaluation.
We want to evaluate the arguments to a call before looking into the cache so
that we have constant values, but if we then find the call in the cache we
end up with a TREE_LIST that we don't end up using; in highly recursive
constexpr evaluation this ends up being a large proportion of the garbage
generated.
The cxx_eval_increment_expression hunk is less important, but it's an easy
tweak; we only use the MODIFY_EXPR to evaluate it, so after that it's
garbage.
* constexpr.c (cxx_eval_call_expression): ggc_free any bindings we
don't save.
(cxx_eval_increment_expression): ggc_free the MODIFY_EXPR after
evaluating it.
From-SVN: r271909
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
0 files changed, 0 insertions, 0 deletions