4

Github rustc-perf/2021-01-12.md at master · rust-lang/rustc-perf · GitHub

 3 years ago
source link: https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-01-12.md
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

rustc-perf/2021-01-12.md at master · rust-lang/rustc-perf · GitHubPermalink

53 lines (39 sloc) 5.95 KB

2021-01-12 Triage Log

Overall, a positive albeit quiet week. The largest change came from the incremental compilation working group which delivered large gains in performance caused by changes in how inlining is handled in debug mode. Unfortunately, these changes may be reversed due to concerns.

Triage done by @rylev. Revision range: f4b9d32ef53c0629732ee131b640920ae12d1edb..b6b461652a9bebfb4ddabcae896ee7237cf0962a

1 Regressions, 2 Improvements, 3 Mixed 2 of them in rollups

Regressions

Rollup of 9 pull requests #80867

  • Moderate regression in instruction counts (up to 1.7% on incr-full builds of syn-opt)
  • Minor regressions in mostly incremental builds (both opt and debug).
  • It's hard to tell which PR was responsible but #79968 seems to be the most likely. We will investigate.
  • There was a change in the impl_trait_ref which may give hints as to the root cause.

Improvements

Rollup of 9 pull requests #80928

  • Moderate improvement in instruction counts (up to -2.2% on full builds of match-stress-enum-check)
  • Moderate gain in a stress test. It's hard to tell which PR might be responsible.

Do not query the HIR directly in opt_associated_item. #80889

  • Moderate improvement in instruction counts (up to -1.8% on incr-patched: println builds of webrender-wrench-check)
  • Simplifies getting a AssocItem given a DefId by not actually querying the HIR.
  • The biggest impact was to the check_mod_privacy query

Mixed

Do not make local copies of inline fns in debug mode #76896

  • Very large improvement in instruction counts (up to -46.8% on incr-patched: sparse set builds of regex-debug)
  • Large regression in instruction counts (up to 6.0% on incr-patched: static str 6144 builds of issue-46449-debug)
  • The performance was already analyzed by the incremental compilation working group here.
  • This change largely affects how LLVM performs when users compile in debug mode. The improvements were largely in real world crates while regressions were in synthetic benchmarks.
  • This change may be reverted due to some concerns.

ast: Remove some indirection layers from values in key-value attributes #80441

  • Moderate regression in instruction counts (up to 1.3% on incr-patched: println builds of coercions-debug)
  • Moderate improvement in instruction counts (up to -1.1% on incr-unchanged builds of issue-46449-check)
  • An attempt to address some of the perf lost in here in #78837, but the changes don't seem to be directly correlated.
  • The original perf run only yielded positive results but it seems this change may invalidate the gains from another change introduced after that perf run.

Serialize incr comp structures to file via fixed-size buffer #80463

  • Large improvement in instruction counts (up to -8.9% on incr-unchanged builds of ctfe-stress-4-check)
  • Moderate regression in instruction counts (up to 3.1% on incr-unchanged builds of clap-rs-check)
  • Improvement is in synthetic benchmarks while regressions are largely in real world crates.
  • This change was done largely to reduce memory footprint size and the perf impact was deemed worth it

Nags requiring follow up

  • Follow up needs to happen on the regressions, especially on the rollup #80928 and #80441 where the performance regressed from an early perf run done while the PR was still open.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK