summary refs log tree commit diff
path: root/src/tools/opt-dist
AgeCommit message (Collapse)AuthorLines
2024-03-16Auto merge of #119418 - aaupov:master, r=Kobzolbors-1/+3
[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).
2024-03-07Include all library files in artifact summary on CIJakub Beránek-14/+1
2024-03-07Auto merge of #121866 - Kobzol:opt-dist-find-llvm, r=Mark-Simulacrumbors-0/+13
Modify opt-dist logic for finding LLVM artifacts This is the `rustc` side of fixing https://github.com/rust-lang/rust/pull/121395#issuecomment-1973572885.
2024-03-01Modify opt-dist logic for finding LLVM artifactsJakub Beránek-0/+13
2024-03-01Handle new LLVM sonameNikita Popov-1/+2
LLVM now includes the minor version in the soname, and also changed the names of shared object files. libLLVM-18.so is now a symlink to libLLVM.so.18.1. We need to make some changes to support this: First, we need to run the installed llvm-config binary, rather than the one from the build directory. This is because the symlink does not exist in the build directory, but llvm-config requires it. This looks like an LLVM bug to me, but it's probably a good idea to use the installed version anyway. Second, when installing LLVM into the libdir, we need to install the target of the symlink, ans this is what will get loaded at runtime. However, the rust-dev component in particular also needs to distribute the symlink itself, as download-ci-llvm will end up invoking llvm-config, which requires the symlink to exist. The symlink is not shipped in other components.
2024-02-22dedupe env_logger, drop is-terminalklensy-1/+1
2024-02-22bump tabledklensy-4/+4
2024-02-22bump sysinfoklensy-5/+5
2024-02-18opt-dist: bump derive_builder to dedupe darling* and remove one more syn 1.* depklensy-1/+1
2023-12-29[BOLT] Use CDSort and CDSplitAmir Ayupov-1/+3
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).
2023-10-23Partial Revert: "Auto merge of #117018 - Kobzol:opt-dist-cargo-stage0"Urgau-1/+6
2023-10-22Auto merge of #117062 - Kobzol:update-rustc-perf, r=Mark-Simulacrumbors-2/+2
Update rustc-perf version Needed to unblock https://github.com/rust-lang/rust/pull/116033. The commit first needs to be uploaded to our mirrors. r? `@Mark-Simulacrum`
2023-10-22Update rustc-perf versionJakub Beránek-2/+2
2023-10-22Pass host triple when running tests in `opt-dist`Jakub Beránek-0/+2
2023-10-22Use beta cargo in opt-distJakub Beránek-6/+1
Using the new cargo caused issues when a backwards-incompatible change was made to cargo.
2023-10-16opt-dist: disable unused features for tabled crateklensy-1/+1
2023-10-11Pass BOLT settings at the correct stepJakub Beránek-3/+7
2023-10-09Add `--enable-bolt-settings` bootstrap flagJakub Beránek-0/+6
2023-10-09Optimize `librustc_driver.so` with BOLTJakub Beránek-43/+84
2023-10-02Add artifact size and step duration summaries from `opt-dist` to github job ↵Jakub Beránek-28/+94
summary
2023-10-02Auto merge of #115898 - onur-ozkan:config-change-tracking, r=Mark-Simulacrumbors-1/+1
bootstrap major change detection implementation The use of `changelog-seen` and `bootstrap/CHANGELOG.md` has not been functional in any way for many years. We often do major/breaking changes but never update the changelog file or the `changelog-seen`. This is an alternative method for tracking major or breaking changes and informing developers when such changes occur. Example output when bootstrap detects a major change: ![image](https://github.com/rust-lang/rust/assets/39852038/ee802dfa-a02b-488b-a433-f853ce079b8a)
2023-10-01implement major change tracking for the bootstrap configurationonur-ozkan-1/+1
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-09-18Fix build on WindowsJakub Beránek-0/+1
2023-09-13Resolve clippy warningsJakub Beránek-8/+6
2023-09-13Refactor rustc-perf buildingJakub Beránek-11/+13
2023-09-12Add a Local environment to `opt-dist`Jakub Beránek-5/+77
This makes it easier to build a PGO/BOLT optimized `rustc` locally, outside of CI.
2023-09-12Fix `reset_directory` functionJakub Beránek-1/+1
Before it was not deleting non-empty directories.
2023-09-12Refactor EnvironmentJakub Beránek-272/+260
2023-09-12Make executable extension platform, rather than environment dependentJakub Beránek-20/+20
2023-09-12Store target triple in environmentJakub Beránek-10/+27
2023-09-04Retry download of rustc-perf in opt-distJakub Beránek-1/+30
This should help resolving spurious network errors. It also increases the timeout for the archive download.
2023-09-04Mirror the rustc-perf sourceMark Rousskov-1/+1
This avoids issues with the GitHub /archive/ links which can be somewhat unreliable and are currently causing CI issues.
2023-08-10Auto merge of #114001 - meysam81:issue-111894-fix, r=clubby789bors-2/+2
fix(bootstrap): rename exclude flag to skip 🐛 fixes #111894
2023-08-09Remove usage of `--use-old-text` for BOLTJakub Beránek-1/+6
2023-08-07Rename method in `opt-dist`Jakub Beránek-5/+5
This makes it clearer that the LLVM is the host one (it doesn't necessarily have to be downloaded).
2023-08-06fix(bootstrap): rename exclude flag to skip 🐛Meysam Azad-2/+2
2023-08-02Generalize duration analysisJakub Beránek-11/+23
Use the correct `llvm-profdata` binary in `opt-dist`
2023-07-31Rollup merge of #113804 - Kobzol:opt-dist-version, r=Mark-SimulacrumMatthias Krüger-6/+19
Resolve correct archive version name in `opt-dist` Should resolve the master part of https://github.com/rust-lang/rust/issues/113784. r? `@Mark-Simulacrum`
2023-07-31Pass BOLT profile to bootstrap to be included in the reproducible artifacts ↵Jakub Beránek-23/+28
archive
2023-07-31Implement BOLT optimization in the `opt-dist` toolJakub Beránek-24/+163
2023-07-27Auto merge of #113779 - Kobzol:try-build-no-lto, r=Mark-Simulacrumbors-1/+31
Build the first LLVM without LTO in try builds Currently, we perform three LLVM builds in the Linux x64 dist builder, which is used for `try` builds: 1) "Normal" LLVM - takes ~5s to compile thanks to `sccache`, but ~8 minutes to link because of ThinLTO 2) PGO instrumented LLVM - same timings as 1) 3) PGO optimized LLVM - takes about 20 minutes to build When I tried to disable LTO for build 1), it suddenly takes only about a minute to build, because the linking step is much faster. The first LLVM doesn't really need LTO all that much. Without it, it will be a bit slower to build `rustc` in two subsequent steps, but it seems that the ~7 minutes saved on linking it do win that back. Btw, we can't use the host LLVM for build 1), because this LLVM then builds `rustc` in PGO instrumented mode, and we need the same compiler when later PGO optimizing `rustc`. And we want to use our in-house LLVM for that I think.
2023-07-18Try to build LLVM without LTOJakub Beránek-1/+31
2023-07-17Resolve correct archive version name in `opt-dist`Jakub Beránek-6/+38
2023-07-16Use log groups in `opt-dist`Jakub Beránek-20/+53
Some of the output was quite verbose in CI logs, this should help with that.
2023-07-14Print artifact sizes in `opt-dist`Jakub Beránek-5/+45
2023-07-09Port PGO/LTO/BOLT optimized build pipeline to RustJakub Beránek-0/+1240