rust/src
Samuel Tardieu d8c09c10e5
Rollup merge of #136840 - Flakebi:linker-plugin-lto-fat, r=dianqk
Fix linker-plugin-lto only doing thin lto

When rust provides LLVM bitcode files to lld and the bitcode contains
function summaries as used for thin lto, lld defaults to using thin lto.
This prevents some optimizations that are only applied for fat lto.

We solve this by not creating function summaries when fat lto is
enabled. The bitcode for the module is just directly written out.

An alternative solution would be to set the `ThinLTO=0` module flag to
signal lld to do fat lto.
The code in clang that sets this flag is here:
560149b5e3/clang/lib/CodeGen/BackendUtil.cpp (L1150)
The code in LLVM that queries the flag and defaults to thin lto if not
set is here:
e258bca950/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp (L4441-L4446)

try-job: x86_64-gnu-debug
try-job: aarch64-gnu-debug
2025-07-31 13:12:45 +02:00
..
bootstrap Add change tracker entry 2025-07-30 19:55:17 +08:00
build_helper integrate build_helper::npm into js checks and package.json usage 2025-07-19 14:56:42 -05:00
ci Rollup merge of #144675 - jieyouxu:compiletest-staging, r=Kobzol 2025-07-30 19:49:03 +02:00
doc Rollup merge of #143465 - kornelski:extern-name, r=petrochenkov 2025-07-30 19:49:01 +02:00
etc update completions 2025-07-19 14:52:31 -05:00
gcc@04ce66d8c9 Update src/gcc submodule to 04ce66d8c918de9273bd7101638ad8724edf5e21 2025-05-14 18:02:02 +02:00
librustdoc Rollup merge of #144308 - GuillaumeGomez:merged-doctest-times, r=lolbinarycat 2025-07-30 19:49:02 +02:00
llvm-project@e8a2ffcf32 Update LLVM submodule 2025-07-17 19:53:13 +08:00
rustc-std-workspace
rustdoc-json-types rustdoc-json: Structured attributes 2025-07-15 16:52:41 +00:00
tools Rollup merge of #136840 - Flakebi:linker-plugin-lto-fat, r=dianqk 2025-07-31 13:12:45 +02:00
README.md
stage0 Update stage0 to 1.89.0-beta.1 2025-07-01 10:54:33 -07:00
version Bump the version number to 1.90.0 2025-06-20 10:08:52 -07:00

This directory contains some source code for the Rust project, including:

  • The bootstrapping build system
  • Various submodules for tools, like cargo, tidy, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.