rust/compiler/rustc_session/src
bors 0c72c0d11a Auto merge of #133250 - DianQK:embed-bitcode-pgo, r=nikic
The embedded bitcode should always be prepared for LTO/ThinLTO

Fixes #115344. Fixes #117220.

There are currently two methods for generating bitcode that used for LTO. One method involves using `-C linker-plugin-lto` to emit object files as bitcode, which is the typical setting used by cargo. The other method is through `-C embed-bitcode=yes`.

When using with `-C embed-bitcode=yes -C lto=no`, we run a complete non-LTO LLVM pipeline to obtain bitcode, then the bitcode is used for LTO. We run the Call Graph Profile Pass twice on the same module.

This PR is doing something similar to LLVM's `buildFatLTODefaultPipeline`, obtaining the bitcode for embedding after running `buildThinLTOPreLinkDefaultPipeline`.

r? nikic
2025-03-01 08:22:18 +00:00
..
config Rollup merge of #137072 - Urgau:check-cfg-load-builtins-at-once, r=Noratrieb 2025-02-16 17:14:04 +01:00
code_stats.rs Remove print_vtable_sizes 2025-01-30 15:30:04 +00:00
config.rs Auto merge of #133250 - DianQK:embed-bitcode-pgo, r=nikic 2025-03-01 08:22:18 +00:00
cstore.rs Update comments 2024-12-19 15:30:32 +00:00
errors.rs Reject macro calls inside of #![crate_name] 2025-02-15 16:47:30 +01:00
filesearch.rs bumpt compiler and tools to windows 0.59 2025-01-21 16:48:44 +03:00
lib.rs Rollup merge of #136152 - Urgau:stabilize-map_many_mut, r=joshtriplett 2025-02-06 21:56:26 +01:00
options.rs Auto merge of #137420 - matthiaskrgr:rollup-rr0q37f, r=matthiaskrgr 2025-02-22 13:32:44 +00:00
output.rs Reject macro calls inside of #![crate_name] 2025-02-15 16:47:30 +01:00
parse.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
search_paths.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
session.rs Teach structured errors to display short Ty 2025-02-25 16:56:03 +00:00
utils.rs remove a couple of redundant String to String conversion 2024-10-12 22:07:46 +02:00