diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2021-02-02 22:17:13 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-02 22:17:13 +0000 |
commit | cd94cf8995bcddc40e627e94037e549b7a18b20e (patch) | |
tree | 309dea74fed132ce63058abf99e81a7e44ed1c43 /docs | |
parent | 65b3d67c7e55ef4ccee496f53d18af859711b29e (diff) | |
parent | 6f532b72c85e38880cf7953098bb91e8f3feb696 (diff) | |
download | meson-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.md | 46 | ||||
-rw-r--r-- | docs/markdown/snippets/lto_mode.md | 5 | ||||
-rw-r--r-- | docs/markdown/snippets/lto_threads.md | 7 |
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. |