[PATCH] D120666: [docs] Add note about interaction between clang plugins and -clear-ast-before-backend
Arthur Eubanks via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 28 11:16:51 PST 2022
aeubanks updated this revision to Diff 411851.
aeubanks added a comment.
reword
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120666/new/
https://reviews.llvm.org/D120666
Files:
clang/docs/ClangPlugins.rst
Index: clang/docs/ClangPlugins.rst
===================================================================
--- clang/docs/ClangPlugins.rst
+++ clang/docs/ClangPlugins.rst
@@ -200,3 +200,17 @@
PluginASTAction::ActionType getActionType() override {
return AddAfterMainAction;
}
+
+Interaction with ``-clear-ast-before-backend``
+----------------------------------------------
+
+To reduce peak memory usage of the compiler, plugins are recommended to run
+*before* the main action, which is usually code generation. This is because
+having any plugins that run after the codegen action automatically turns off
+``-clear-ast-before-backend``. ``-clear-ast-before-backend`` reduces peak
+memory by clearing the Clang AST after generating IR and before running IR
+optimizations. Use ``CmdlineBeforeMainAction`` or ``AddBeforeMainAction`` as
+``getActionType`` to run plugins while still benefitting from
+``-clear-ast-before-backend``. Plugins must make sure not to modify the AST,
+otherwise they should run after the main action.
+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D120666.411851.patch
Type: text/x-patch
Size: 1038 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220228/865ff6b2/attachment.bin>
More information about the cfe-commits
mailing list