ilya-biryukov wrote:

I have made quite a bit of progress here, but we also need the deduplication 
builting urgently to help ease the pain for
some of the big compilations that started hitting our infrastructure limits 
internally.

I have created #139730 with the initial and simple version of the builtin that 
I would really love to land ASAP as I expect this PR to take more time to cook 
(see open questions below, I'm sure there will be a few more comments). I fully 
understand the desire to have a better version of the builtin in the long term 
and I am happy to continue working on this until it lands. But we also need the 
build time savings at a shorter timeframe, so I hope that having a simpler 
version in the meantime would not be  a particularly contentious point. Let me 
know, though. 

With that out of the way, @cor3ntin could you take a look at the new version 
here?
It still has a few rough edges, but I want to make sure the choices made here 
make sense to you, in particular:
- using `TemplateSpecializationType` for dependent instantiations and for sugar 
after we have a template pack after substitution,
- doing a second run during template instantiations when we need to expand the 
packs that are delayed,
- a new type (that shares a common base class with `SubstTemplateParmPackType`) 
to represent the pack after substitution.

Also eager to hear feedback from others, just calling out @cor3ntin as someone 
who has been the author of the relevant standard proposals that this PR is 
trying to mimic.

https://github.com/llvm/llvm-project/pull/106730
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to