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

Matheus Izvekov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 23 14:26:37 PDT 2022


mizvekov added a comment.

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...


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