mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
e71f952912
Apply size optimizations to panic machinery and some cold functions * std dependencies gimli and addr2line are now built with opt-level=s * various panic-related methods and `#[cold]` methods are now marked `#[optimize(size)]` Panics should be cold enough that it doesn't make sense to optimize them for speed. The only tradeoff here is if someone does a lot of backtrace captures (without panics) and printing then the opt-level change might impact their perf. Seems to be the first use of the optimize attribute. Tracking issue #54882
48 lines
1.6 KiB
TOML
48 lines
1.6 KiB
TOML
[workspace]
|
|
resolver = "1"
|
|
members = [
|
|
"std",
|
|
"sysroot",
|
|
]
|
|
|
|
exclude = [
|
|
# stdarch has its own Cargo workspace
|
|
"stdarch",
|
|
"windows_targets"
|
|
]
|
|
|
|
[profile.release.package.compiler_builtins]
|
|
# For compiler-builtins we always use a high number of codegen units.
|
|
# The goal here is to place every single intrinsic into its own object
|
|
# file to avoid symbol clashes with the system libgcc if possible. Note
|
|
# that this number doesn't actually produce this many object files, we
|
|
# just don't create more than this number of object files.
|
|
#
|
|
# It's a bit of a bummer that we have to pass this here, unfortunately.
|
|
# Ideally this would be specified through an env var to Cargo so Cargo
|
|
# knows how many CGUs are for this specific crate, but for now
|
|
# per-crate configuration isn't specifiable in the environment.
|
|
codegen-units = 10000
|
|
|
|
# These dependencies of the standard library implement symbolication for
|
|
# backtraces on most platforms. Their debuginfo causes both linking to be slower
|
|
# (more data to chew through) and binaries to be larger without really all that
|
|
# much benefit. This section turns them all to down to have no debuginfo which
|
|
# helps to improve link times a little bit.
|
|
[profile.release.package]
|
|
addr2line.debug = 0
|
|
addr2line.opt-level = "s"
|
|
adler.debug = 0
|
|
gimli.debug = 0
|
|
gimli.opt-level = "s"
|
|
miniz_oxide.debug = 0
|
|
object.debug = 0
|
|
rustc-demangle.debug = 0
|
|
|
|
[patch.crates-io]
|
|
# See comments in `library/rustc-std-workspace-core/README.md` for what's going on
|
|
# here
|
|
rustc-std-workspace-core = { path = 'rustc-std-workspace-core' }
|
|
rustc-std-workspace-alloc = { path = 'rustc-std-workspace-alloc' }
|
|
rustc-std-workspace-std = { path = 'rustc-std-workspace-std' }
|