Hi Jason,

Sounds like an interesting idea.  Do have already a specific approach in mind?

My idea might be just hard to model, as we aren't sure we walked
before the complete chain.  Due cp_fold is caching, we won't try to
fold an expression a second time, but we don't cover all EXPRs in
cp_fold, which makes it hard to tell, if we ended up walking the
complete expression-tree, or ended on an unknown expression.
So we could add to cp_fold an additional return-value, which indicates
if we ended with an unknown expression (means default statement).
This we could use later on to decided if we need to walk sub-tree, or
not.  Not sure if that is best approach, but it could help to avoid
some double runs.

Kai

2015-09-17 8:10 GMT+02:00 Jason Merrill <ja...@redhat.com>:
> I think we want to clear *walk_subtrees a lot more often in cp_fold_r; as it
> is, for most expressions we end up calling cp_fold on the full-expression,
> then uselessly on the subexpressions after we already folded the containing
> expression.
>
> Jason

Reply via email to