diff options
| author | Amir Ayupov <amir.aupov@gmail.com> | 2023-12-29 11:39:30 -0800 |
|---|---|---|
| committer | Amir Ayupov <fads93@gmail.com> | 2023-12-29 11:41:44 -0800 |
| commit | 13ef6d4efc52eaed9e2c67ecaa334c9a51cde5fc (patch) | |
| tree | 5bc4f5094d4ad468afa1cbe6eb9d7f647d086297 | |
| parent | 29abb90bbf4472d8a3bc032a838b20a85f5ed1e7 (diff) | |
| download | rust-13ef6d4efc52eaed9e2c67ecaa334c9a51cde5fc.tar.gz rust-13ef6d4efc52eaed9e2c67ecaa334c9a51cde5fc.zip | |
[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.rs | 4 |
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 |
