about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJubilee Young <workingjubilee@gmail.com>2025-05-30 15:53:35 -0700
committerJubilee Young <workingjubilee@gmail.com>2025-05-30 15:53:46 -0700
commit2d5d55a50ab6c6e1f5af65e42b73cd173536b03d (patch)
tree31294099f4f95d48a643dc6d2d200a96a2c0d1f4
parent15825b7161f8bd6a3482211fbf6727a52aa1166b (diff)
downloadrust-2d5d55a50ab6c6e1f5af65e42b73cd173536b03d.tar.gz
rust-2d5d55a50ab6c6e1f5af65e42b73cd173536b03d.zip
bootstrap: build std with less frame pointers
Sometimes leaf frame-pointers can impact LLVM inlining choices, and
that can be a real problem for things like `mul_add`.
-rw-r--r--src/bootstrap/src/core/build_steps/compile.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
index d5ea96b43f5..38820e2f117 100644
--- a/src/bootstrap/src/core/build_steps/compile.rs
+++ b/src/bootstrap/src/core/build_steps/compile.rs
@@ -670,7 +670,8 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
 
     // Enable frame pointers by default for the library. Note that they are still controlled by a
     // separate setting for the compiler.
-    cargo.rustflag("-Cforce-frame-pointers=yes");
+    cargo.rustflag("-Zunstable-options");
+    cargo.rustflag("-Cforce-frame-pointers=non-leaf");
 
     let html_root =
         format!("-Zcrate-attr=doc(html_root_url=\"{}/\")", builder.doc_rust_lang_org_channel(),);