Author: Teresa Johnson Date: 2023-03-13T11:33:46-07:00 New Revision: fb3b392264a099270b77ba7ebfb9d32817fc51d6
URL: https://github.com/llvm/llvm-project/commit/fb3b392264a099270b77ba7ebfb9d32817fc51d6 DIFF: https://github.com/llvm/llvm-project/commit/fb3b392264a099270b77ba7ebfb9d32817fc51d6.diff LOG: [docs] Add more complete documentation for -f[no]split-lto-unit Option was added in D53891, and only has basic documentation added later in 5168ddfac44206e94f7ddd484d1cf03dee320fa7. Add more extensive documentation with links to related docs. Differential Revision: https://reviews.llvm.org/D145951 Added: Modified: clang/docs/UsersManual.rst Removed: ################################################################################ diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst index 0d5e960050c25..77b1c938c6ad4 100644 --- a/clang/docs/UsersManual.rst +++ b/clang/docs/UsersManual.rst @@ -2013,6 +2013,24 @@ are listed below. devirtualization and virtual constant propagation, for classes with :doc:`hidden LTO visibility <LTOVisibility>`. Requires ``-flto``. +.. option:: -f[no]split-lto-unit + + Controls splitting the :doc:`LTO unit <LTOVisibility>` into regular LTO and + :doc:`ThinLTO` portions, when compiling with -flto=thin. Defaults to false + unless ``-fsanitize=cfi`` or ``-fwhole-program-vtables`` are specified, in + which case it defaults to true. Splitting is required with ``fsanitize=cfi``, + and it is an error to disable via ``-fno-split-lto-unit``. Splitting is + optional with ``-fwhole-program-vtables``, however, it enables more + aggressive whole program vtable optimizations (specifically virtual constant + propagation). + + When enabled, vtable definitions and select virtual functions are placed + in the split regular LTO module, enabling more aggressive whole program + vtable optimizations required for CFI and virtual constant propagation. + However, this can increase the LTO link time and memory requirements over + pure ThinLTO, as all split regular LTO modules are merged and LTO linked + with regular LTO. + .. option:: -fforce-emit-vtables In order to improve devirtualization, forces emitting of vtables even in _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits