During my work on Generator Resume Arguments I noticed that the implementation causes a 10% regression of the await-call-tree benchmarks because the
normalize_ty_after_erasing_regions query takes longer to evaluate. The same query caused a huge regression when the
IntoFuture lowering was implemented. In both cases the query is still evaluated the same number of times, it just seems to take significantly more time to run.
Does anyone have an idea about what could cause this or how to investigate this? I'm not very familiar with how that query works.
I might have figured it out: https://github.com/rust-lang/rust/pull/68524/commits/9aed42f5df6905d5cf9f68321b869b0c58c50c3b
@Jonas Schievink Deduplicating the types inside the generator might help performance too, not sure why I didn't get around to doing that.
You mean inside the witness type?