aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2021-02-02 22:17:13 +0000
committerGitHub <noreply@github.com>2021-02-02 22:17:13 +0000
commitcd94cf8995bcddc40e627e94037e549b7a18b20e (patch)
tree309dea74fed132ce63058abf99e81a7e44ed1c43 /docs
parent65b3d67c7e55ef4ccee496f53d18af859711b29e (diff)
parent6f532b72c85e38880cf7953098bb91e8f3feb696 (diff)
downloadmeson-cd94cf8995bcddc40e627e94037e549b7a18b20e.zip
meson-cd94cf8995bcddc40e627e94037e549b7a18b20e.tar.gz
meson-cd94cf8995bcddc40e627e94037e549b7a18b20e.tar.bz2
Merge pull request #8087 from dcbaker/submit/lto-extensions
Add option for thinLTO
Diffstat (limited to 'docs')
-rw-r--r--docs/markdown/Builtin-options.md46
-rw-r--r--docs/markdown/snippets/lto_mode.md5
-rw-r--r--docs/markdown/snippets/lto_threads.md7
3 files changed, 38 insertions, 20 deletions
diff --git a/docs/markdown/Builtin-options.md b/docs/markdown/Builtin-options.md
index ef327e3..2d7c01c 100644
--- a/docs/markdown/Builtin-options.md
+++ b/docs/markdown/Builtin-options.md
@@ -119,30 +119,36 @@ no options.
The following options are available. Note that they may not be
available on all platforms or with all compilers:
-| Option | Default value | Possible values | Description |
-| ----------- | ------------- | --------------- | ----------- |
-| b_asneeded | true | true, false | Use -Wl,--as-needed when linking |
-| b_bitcode | false | true, false | Embed Apple bitcode, see below |
-| b_colorout | always | auto, always, never | Use colored output |
-| b_coverage | false | true, false | Enable coverage tracking |
-| b_lundef | true | true, false | Don't allow undefined symbols when linking |
-| b_lto | false | true, false | Use link time optimization |
-| 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 |
-| b_sanitize | none | see below | Code sanitizer to use |
-| b_staticpic | true | true, false | Build static libraries as position independent |
-| b_pie | false | true, false | Build position-independent executables (since 0.49.0)|
-| b_vscrt | from_buildtype| none, md, mdd, mt, mtd, from_buildtype, static_from_buildtype | VS runtime library to use (since 0.48.0) (static_from_buildtype since 0.56.0) |
+| Option | Default value | Possible values | Description |
+|---------------|----------------|------------------------------------------------------------------|-------------------------------------------------------------------------------|
+| b_asneeded | true | true, false | Use -Wl,--as-needed when linking |
+| b_bitcode | false | true, false | Embed Apple bitcode, see below |
+| b_colorout | always | auto, always, never | Use colored output |
+| b_coverage | false | true, false | Enable coverage tracking |
+| 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 |
+| b_sanitize | none | see below | Code sanitizer to use |
+| b_staticpic | true | true, false | Build static libraries as position independent |
+| b_pie | false | true, false | Build position-independent executables (since 0.49.0) |
+| b_vscrt | from_buildtype | none, md, mdd, mt, mtd, from_buildtype, static_from_buildtype | VS runtime library to use (since 0.48.0) (static_from_buildtype since 0.56.0) |
The value of `b_sanitize` can be one of: `none`, `address`, `thread`,
`undefined`, `memory`, `address,undefined`.
-<a name="b_vscrt-from_buildtype"></a> 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
-`static_from_buildtype` *(since 0.56)* based on the value of the
-`buildtype` option:
+* < 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)
+
+<a name="b_vscrt-from_buildtype"></a>
+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
+`static_from_buildtype` *(since 0.56)* based on the value of the `buildtype`
+option:
| buildtype | from_buildtype | static_from_buildtype |
| -------- | -------------- | --------------------- |
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.
diff --git a/docs/markdown/snippets/lto_threads.md b/docs/markdown/snippets/lto_threads.md
new file mode 100644
index 0000000..a6f7614
--- /dev/null
+++ b/docs/markdown/snippets/lto_threads.md
@@ -0,0 +1,7 @@
+## Knob to control LTO thread
+
+Both the gnu linker and lld support using threads for speading up LTO, meson
+now provides a knob for this: `-Db_lto_threads`. Currently this is only
+supported for clang and gcc. Any positive integer is supported, `0` means
+`auto`. If the compiler or linker implemnets it's on `auto` we use that,
+otherwise the number of threads on the machine is used.