[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