Stream: t-compiler/help

Topic: Compiletime regression of normalize_ty_after_erasing_regions


Jonas Schievink (Jan 27 2020 at 17:38, on Zulip):

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.

Jonas Schievink (Jan 27 2020 at 23:59, on Zulip):

I might have figured it out: https://github.com/rust-lang/rust/pull/68524/commits/9aed42f5df6905d5cf9f68321b869b0c58c50c3b

Zoxc (Jan 28 2020 at 18:34, on Zulip):

@Jonas Schievink Deduplicating the types inside the generator might help performance too, not sure why I didn't get around to doing that.

Jonas Schievink (Jan 28 2020 at 18:35, on Zulip):

You mean inside the witness type?

Zoxc (Jan 28 2020 at 18:36, on Zulip):

Yeah

Last update: Sep 22 2020 at 02:30UTC