about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-03-16 11:18:39 +0000
committerbors <bors@rust-lang.org>2024-03-16 11:18:39 +0000
commit9023f908cfbe7a475f369717a61cb8eb865cfd25 (patch)
tree76ee723cdf1fec6660e131f62ae45ddb1016d1f2
parent774ae599aba35f7b323e77be88923b8f476ee783 (diff)
parent13ef6d4efc52eaed9e2c67ecaa334c9a51cde5fc (diff)
Auto merge of #119418 - aaupov:master, r=Kobzol
[BOLT] Use CDSort and CDSplit

CDSort and CDSplit are the most recent versions of function ordering and function splitting algorithms with some improvements over the previous baseline (ext-tsp and two-way splitting).
-rw-r--r--src/tools/opt-dist/src/bolt.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/tools/opt-dist/src/bolt.rs b/src/tools/opt-dist/src/bolt.rs
index f694c08f9b9..eb10426f060 100644
--- a/src/tools/opt-dist/src/bolt.rs
+++ b/src/tools/opt-dist/src/bolt.rs
@@ -62,9 +62,11 @@ pub fn bolt_optimize(path: &Utf8Path, profile: &BoltProfile) -> anyhow::Result<(
         // Reorder basic blocks within functions
         .arg("-reorder-blocks=ext-tsp")
         // Reorder functions within the binary
-        .arg("-reorder-functions=hfsort+")
+        .arg("-reorder-functions=cdsort")
         // Split function code into hot and code regions
         .arg("-split-functions")
+        // Split using best available strategy (three-way splitting, Cache-Directed Sort)
+        .arg("-split-strategy=cdsplit")
         // Split as many basic blocks as possible
         .arg("-split-all-cold")
         // Move jump tables to a separate section