aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-niter.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2019-06-04 10:47:40 -0400
committerJason Merrill <jason@gcc.gnu.org>2019-06-04 10:47:40 -0400
commitecdcd56094cadc7bd3c18a0edd19f00d670e0d9b (patch)
tree6c44b508c28bc1e7f1f7141324f204af83dcb7f2 /gcc/tree-ssa-loop-niter.c
parentc790e3ece633d7e566f15b4df389ad8aefd9b78a (diff)
downloadgcc-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