]> git.lizzy.rs Git - rust.git/commit
Allow use of `-Clto=thin` with `-Ccodegen-units=1` in general
authorWesley Wiser <wesleywiser@microsoft.com>
Thu, 27 Oct 2022 00:28:25 +0000 (20:28 -0400)
committerWesley Wiser <wesleywiser@microsoft.com>
Thu, 27 Oct 2022 01:03:28 +0000 (21:03 -0400)
commit7c6345d175a6976e68d3902240ab6dd8d6b99bc2
tree42bd62db1b184981ad038dbb8b983d91b357bdac
parent9b0a099dfc9a97ecd10adb319396c731c4b2d169
Allow use of `-Clto=thin` with `-Ccodegen-units=1` in general

The current logic to ignore ThinLTO when `-Ccodegen-units=1` makes sense
for local ThinLTO but even in this scenario, a user may still want
(non-local) ThinLTO for the purpose of optimizing dependencies into the
final crate which is being compiled with 1 CGU.

The previous behavior was even more confusing because if you were
generating a binary (`--emit=link`), then you would get ThinLTO but if
you asked for LLVM IR or bytecode, then it would silently change to
using regular LTO.

With this change, we only override the defaults for local ThinLTO if you
ask for a single output such as LLVM IR or bytecode and in all other
cases honor the requested LTO setting.
compiler/rustc_session/src/config.rs
compiler/rustc_session/src/options.rs
compiler/rustc_session/src/session.rs