Skip to content

Latest commit

 

History

History
113 lines (92 loc) · 9.91 KB

2022-02-16.md

File metadata and controls

113 lines (92 loc) · 9.91 KB

2022-02-16 Triage Log

Only one outright regression this week. We had some very cool work from cjgillot to prevent queries from doing expensive clones, by just forcing them all to be Copy! Also, nnethercote's overhaul of interning yielded massive improvements across many crates. Also, a slew of benchmarks were unexpectedly improved quite a lot by some changes to way we invoke the linker when building LLVM itself.

Triage done by @pnkfelix. Revision range: 775e480722c7aba6ff4ff3ccec8c1f4639ae7889..a240ccd81c74c105b6f5fe84c46f8d36edb7e306

2 Regressions, 2 Improvements, 4 Mixed; 0 of them in rollups 47 comparisons made in total

Regressions

Inherit lifetimes for async fn instead of duplicating them. #91403

  • Average relevant regression: 1.7%
  • Largest regression in instruction counts: 2.0% on full builds of issue-88862 check
  • This regression was predicted by a rust-timer build when PR was first proposed, ...
  • ... but there was no follow-up on those results at that time; left comment on PR.

Apply noundef attribute to &T, &mut T, Box, bool #93670

  • Average relevant regression: 0.7%
  • Largest regression in instruction counts: 1.1% on full builds of regression-31157 debug
  • PR author says that Cachegrind indicates this is due to overhead of inserting attribute itself.
  • PR author also says there is related work in LLVM 14 that may help ease the performance impact here, so stay tuned for when that lands in PR #93577

Improvements

Ensure that queries only return Copy types. #93511

  • Average relevant improvement: -2.3%
  • Largest improvement in instruction counts: -6.1% on incr-unchanged builds of externs debug

bootstrap: tidy up flag handling for llvm build #93918

  • Average relevant improvement: -1.6%
  • Largest improvement in instruction counts: -5.4% on full builds of helloworld check

Inline a few trivial conversion functions #94021

  • Average relevant improvement: -0.5%
  • Largest improvement in instruction counts: -1.1% on full builds of deeply-nested-async check

Mixed

Revert lazy TAIT PR #93893

  • Average relevant regression: 1.0%
  • Average relevant improvement: -1.2%
  • Largest improvement in instruction counts: -1.8% on full builds of deeply-nested-async check
  • Largest regression in instruction counts: 1.6% on full builds of wg-grammar check
  • Left comment: we had to revert the TAIT PR, the fallout from it was too high. Marked as triaged.

Implement tainted_by_errors in MIR borrowck, use it to skip CTFE #93691

  • Average relevant regression: 1.7%
  • Average relevant improvement: -0.4%
  • Largest improvement in instruction counts: -0.6% on incr-unchanged builds of keccak check
  • Largest regression in instruction counts: 2.4% on incr-patched: u8 3072 builds of issue-46449 debug
  • There were three experiments done for this PR, with distinct commits: first run, second run, third run.
  • The second experiment is what landed; the first experiment had smaller max and average values in its summary, but it regressed far more crates overall, while the second experiment regressed only a few crates, each by slightly more than the first experiment.
  • In any case, this was expected fallout from this PR.

make find_similar_impl_candidates even fuzzier #93298

  • Average relevant regression: 0.7%
  • Average relevant improvement: -0.3%
  • Largest improvement in instruction counts: -0.3% on full builds of inflate check
  • Largest regression in instruction counts: 0.8% on full builds of keccak check
  • Not clear why this had a performance impact at all, as it should have only affected error reporting.

Overhaul interning. #93148

  • Average relevant regression: 1.0%
  • Average relevant improvement: -1.1%
  • Largest improvement in instruction counts: -4.5% on full builds of projection-caching check
  • Largest regression in instruction counts: 1.8% on full builds of match-stress-enum check
  • This was a massive improvement, full stop.

Untriaged Pull Requests

Nags requiring follow up

TODO: Nags