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. +
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. +
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits