[PATCH] D128113: Clang: fix AST representation of expanded template arguments.

Alexander Kornienko via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 23 15:25:18 PDT 2022


alexfh added a comment.

In D128113#3743736 <https://reviews.llvm.org/D128113#3743736>, @mizvekov wrote:

> In D128113#3742779 <https://reviews.llvm.org/D128113#3742779>, @joanahalili wrote:
>
>> This is the reproducer we managed to create for the memory increase.  As mentioned above we notice both a difference in memory and execution time.
>
> Thanks.
>
> I also added a print of the amount of SubstTemplateTypeParmType nodes that were uniqued:
>
> Before:
>
>   SubstTemplateTypeParmType: 751088
>   clang.exe: output=a.exe, total=46687.500 ms, user=46031.250 ms, mem=7793868 Kb
>
> After:
>
>   SubstTemplateTypeParmType: 41919586
>   clang.exe: output=a.exe, total=68828.125 ms, user=67968.750 ms, mem=10511992 Kb
>
> This DR is so basic that I don't really see reasonable way to avoid this cost except by disabling it with a flag.
>
> Though I wonder how useful a SubstTemplateTypeParmType is without the pack index. If that kind of heavy handed meta-programming is reasonable, a flag for disabling substitution sugar entirely does not seem unreasonable...

I wonder what is the practical application of the substitution index in SubstTemplateTypeParmType? Diagnostics? Matching AST? Something else? What would be the cost of calculating the index when necessary?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128113/new/

https://reviews.llvm.org/D128113



More information about the cfe-commits mailing list