From 6f532b72c85e38880cf7953098bb91e8f3feb696 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Thu, 10 Dec 2020 14:16:45 -0800 Subject: Add support for LLVM's thinLTO This uses a separate option, b_lto_mode. It works in conjunction with b_lto_threads. Fixes #7493 --- docs/markdown/Builtin-options.md | 3 +++ docs/markdown/snippets/lto_mode.md | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 docs/markdown/snippets/lto_mode.md (limited to 'docs/markdown') diff --git a/docs/markdown/Builtin-options.md b/docs/markdown/Builtin-options.md index f57755c..2d7c01c 100644 --- a/docs/markdown/Builtin-options.md +++ b/docs/markdown/Builtin-options.md @@ -128,6 +128,7 @@ available on all platforms or with all compilers: | b_lundef | true | true, false | Don't allow undefined symbols when linking | | b_lto | false | true, false | Use link time optimization | | b_lto_threads | 0 | Any integer* | Use multiple threads for lto. *(Added in 0.57.0)* | +| b_lto_mode | default | default, thin | Select between lto modes, thin and default. *(Added in 0.57.0)* | | b_ndebug | false | true, false, if-release | Disable asserts | | b_pch | true | true, false | Use precompiled headers | | b_pgo | off | off, generate, use | Use profile guided optimization | @@ -141,6 +142,8 @@ The value of `b_sanitize` can be one of: `none`, `address`, `thread`, * < 0 means disable, == 0 means automatic selection, > 0 sets a specific number to use +LLVM supports `thin` lto, for more discussion see [LLVM's documentation](https://clang.llvm.org/docs/ThinLTO.html) + The default value of `b_vscrt` is `from_buildtype`. The following table is used internally to pick the CRT compiler arguments for `from_buildtype` or diff --git a/docs/markdown/snippets/lto_mode.md b/docs/markdown/snippets/lto_mode.md new file mode 100644 index 0000000..c1df066 --- /dev/null +++ b/docs/markdown/snippets/lto_mode.md @@ -0,0 +1,5 @@ +## Support added for LLVM's thinLTO + +A new `b_lto_mode` option has been added, which may be set to `default` or +`thin`. Thin only works for clang, and only with gnu gold, lld variants, or +ld64. -- cgit v1.1