File tree 3 files changed +12
-1
lines changed
docker/host-x86_64/dist-x86_64-linux
3 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -651,6 +651,12 @@ impl Step for Rustc {
651
651
panic ! ( "Cannot use and generate PGO profiles at the same time" ) ;
652
652
}
653
653
654
+ // With LLD, we can use ICF (identical code folding) to reduce the executable size
655
+ // of librustc_driver/rustc and to improve i-cache utilization.
656
+ if builder. config . use_lld {
657
+ cargo. rustflag ( "-Clink-args=-Wl,--icf=all" ) ;
658
+ }
659
+
654
660
let is_collecting = if let Some ( path) = & builder. config . rust_profile_generate {
655
661
if compiler. stage == 1 {
656
662
cargo. rustflag ( & format ! ( "-Cprofile-generate={}" , path) ) ;
Original file line number Diff line number Diff line change @@ -122,7 +122,8 @@ ENV RUST_CONFIGURE_ARGS \
122
122
--set target.x86_64-unknown-linux-gnu.ranlib=/rustroot/bin/llvm-ranlib \
123
123
--set llvm.thin-lto=true \
124
124
--set llvm.ninja=false \
125
- --set rust.jemalloc
125
+ --set rust.jemalloc \
126
+ --set rust.use-lld=true
126
127
ENV SCRIPT ../src/ci/pgo.sh python3 ../x.py dist \
127
128
--host $HOSTS --target $HOSTS \
128
129
--include-default-paths \
Original file line number Diff line number Diff line change @@ -195,3 +195,7 @@ rm -r $BUILD_ARTIFACTS/llvm $BUILD_ARTIFACTS/lld
195
195
$@ \
196
196
--rust-profile-use=${RUSTC_PROFILE_MERGED_FILE} \
197
197
--llvm-profile-use=${LLVM_PROFILE_MERGED_FILE}
198
+
199
+ echo " Rustc binary size"
200
+ ls -la ./build/$PGO_HOST /stage2/bin
201
+ ls -la ./build/$PGO_HOST /stage2/lib
You can’t perform that action at this time.
0 commit comments