[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/79760 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/79760 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/79760 >From 2ea817f2103cf146e21128358c1064871a309664 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Sun, 28 Jan 2024 11:03:52 -0500 Subject: [PATCH] [Clang][NFC] Remove TemplateArgumentList::OnStack ---

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Erich Keane via cfe-commits
erichkeane wrote: > @erichkeane How does this sound? > > > Removed support for constructing on-stack `TemplateArgumentList`s; > > interfaces should instead use `ArrayRef` to pass template > > arguments. Transitioning internal uses to `ArrayRef` > > reduces AST memory usage by 0.4% when compil

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @erichkeane How does this sound? > Removed support for constructing on-stack `TemplateArgumentList`s; interfaces > should instead use `ArrayRef` to pass template arguments. > This reduces AST memory usage by 0.4% when compiling clang. https://github.com/llvm/llvm-project/pu

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/79760 >From 2e3e1a1dcaf1a6483e326c0d537af50e264098bb Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Sun, 28 Jan 2024 11:03:52 -0500 Subject: [PATCH] [Clang][NFC] Remove TemplateArgumentList::OnStack ---

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Erich Keane via cfe-commits
erichkeane wrote: > @erichkeane I ended up writing a python script that compiles the TUs in > `clang/lib` with `-print-stats` and then sums up the total bytes allocated by > `ASTContext`. Ended up with a 0.4% decrease in memory usage. > > This does however rely on `compile_commands.json`, and

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @erichkeane I ended up writing a python script that compiles the TUs in `clang/lib` with `-print-stats` and then sums up the total bytes allocated by `ASTContext`. Ended up with a 0.4% decrease in memory usage. This does however rely on `compile_commands.json`, and boost does

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Erich Keane via cfe-commits
erichkeane wrote: > @erichkeane I added the following release note: > > > Removed support for constructing on-stack `TemplateArgumentList`s. > > Interfaces should instead use `ArrayRef` to pass template > > arguments. > > I'm not entirely sure how to benchmark these changes. Perhaps I could

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @erichkeane I added the following release note: > Removed support for constructing on-stack `TemplateArgumentList`s. Interfaces > should instead use `ArrayRef` to pass template arguments. I'm not entirely sure how to benchmark these changes. Perhaps I could determine the diff

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-02-01 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/79760 >From 87b8ab6b6d7f70ae27c766f4038683f9237cc65a Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Sun, 28 Jan 2024 11:03:52 -0500 Subject: [PATCH] [Clang][NFC] Remove TemplateArgumentList::OnStack ---

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/79760 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/79760 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-30 Thread Krystian Stasiowski via cfe-commits
@@ -301,7 +279,9 @@ class TemplateArgumentList final unsigned size() const { return NumArguments; } /// Retrieve a pointer to the template argument list. - const TemplateArgument *data() const { return Arguments; } + const TemplateArgument *data() const { +return get

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/79760 >From 1f6d9f32e21032b11f6e6a4fd6186ccaee88e2e2 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Sun, 28 Jan 2024 11:03:52 -0500 Subject: [PATCH] [Clang][NFC] Remove TemplateArgumentList::OnStack ---

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-29 Thread via cfe-commits
https://github.com/cor3ntin edited https://github.com/llvm/llvm-project/pull/79760 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-29 Thread via cfe-commits
@@ -301,7 +279,9 @@ class TemplateArgumentList final unsigned size() const { return NumArguments; } /// Retrieve a pointer to the template argument list. - const TemplateArgument *data() const { return Arguments; } + const TemplateArgument *data() const { +return get

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-29 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: So I like this! I think it is a good change. I WOULD like to see a release note. I know this isn't particularly 'user visible', but I think, paired with some sort of benchmark, that this would be useful to brag about. We often run out of stack space

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-28 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang Author: Krystian Stasiowski (sdkrystian) Changes This removes on-stack `TemplateArgumentList`'s. They were primary used to pass an `ArrayRef` to `Sema::getTemplateInstantiationArgs`, which had a `const TemplateArgumentList*` par

[clang] [Clang][NFC] Remove TemplateArgumentList::OnStack (PR #79760)

2024-01-28 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian created https://github.com/llvm/llvm-project/pull/79760 This removes on-stack `TemplateArgumentList`'s. They were primary used to pass an `ArrayRef` to `Sema::getTemplateInstantiationArgs`, which had a `const TemplateArgumentList*` parameter for the innermost temp