owned this note changed 4 years ago
Published Linked with GitHub

T-compiler Meeting Agenda 2021-07-08

Tracking Issue

Announcements

  • Friday meeting: Tomorrow at time:2021-07-09T10:00:00:00-04 we will be having part III of our series of meetings on the fingerprint bug write-up, compiler-team#435 (doc under discussion).

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
    • No new proposals this time.
  • Old MCPs (not seconded, take a look)
    • "Add different entry points for x.py" compiler-team#396 (last comment: 6 months ago)
    • "rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat "stable"?" compiler-team#403 (last comment: 5 months ago)
    • "LLVM plugin support in Rust" compiler-team#419 (last comment: 3 months ago)
    • "Don't steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt" compiler-team#437 (last comment: about 26 days ago)
    • "CI should exercise (subset of) tests under stage 1" compiler-team#439 (last comment: about 5 days ago)
    • "Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets" compiler-team#441 (last comment: about 5 days ago)
    • "Encode spans relative to the enclosing item" compiler-team#443 (last comment: about 5 days ago)
  • Pending FCP requests (check your boxes!)
    • "Write text output files to stdout if options like -o - or --emit asm=- are provided" compiler-team#431
  • Things in FCP (make sure you're good with it)
    • None at this time
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • "Tracking Issue for feature(string_drain_as_str) - string::Drain::as_str()" rust#76905
    • "Tracking Issue for std::io::Seek::rewind()" rust#85149

WG checkins

WG-self-profile checkin by @mw && @Wesley Wiser:

Just a few small things to report here:

  • @Aaron Hill extended measureme's API to allow recording events in a more flexible way if needed.
  • @rylev is working with @mw on adding incr. comp. related measurements, starting with query results hashing timings.

Backport nominations

T-compiler stable / T-compiler beta

  • No beta nominations for T-compiler this time.
  • No stable nominations for T-compiler this time.

T-rustdoc stable / T-rustdoc beta

  • No beta nominations for T-rustdoc this time.
  • No stable nominations for T-rustdoc this time.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

PRs S-waiting-on-team

T-compiler

  • None at this time

Early Nominations

  • "Allow reifying intrinsics to fn pointers." rust#86699
    • opened by @eddyb, asking for a review (comment)

Issues of Note

Short Summary

P-critical

T-compiler

T-rustdoc

  • No P-critical issues for T-rustdoc this time.

P-high regressions

P-high beta regressions

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2021-07-06

A fairly mixed week with improvements and regressions mostly balancing themselves out. The highlight of this week is the new performance triage process which will now label PRs that introduce performance regressions with the perf-regression label. Authors and/or reviewers are expected to justify their performance regression either by a short summary of why the change is worth it despite the regression or by creating an issue to follow-up on the regression.

Triage done by @rylev.
2 Regressions, 3 Improvements, 2 Mixed, 1 of them in rollups

Regressions

Rollup of 8 pull requests #86588

Improve debug symbol names to avoid ambiguity and work better with MSVC's debugger #85269

  • Moderate regression in instruction counts (up to 1.5% on incr-unchanged builds of unify-linearly-debug)
  • This might be the case of simply doing more work (including allocations) where there were comparatively few before.
  • Unfortunately a perf run was not run before merging (due to the somewhat complication nature of it landing). This is another example where we'll probably want to invest more in ensuring our performance triage process does not lose track of such changes.
  • @michaelwoerister already opened #86431 to investigate this area of the code. Given the regression isn't very bad, I suggest we let this change slide and try to address the performance of debug info generation wholistically.
    -Follow-up comment: https://github.com/rust-lang/rust/pull/85269#issuecomment-874776341

Improvements

  • Derive Copy for VarianceDiagInfo #86670
  • Add inflate to pgo #86697
  • Fix const-generics ICE related to binding #86795

Mixed

Include terminators in instance size estimate #86777

  • Moderate regression in instruction counts (up to 4.4% on incr-unchanged builds of deeply-nested-async-check)
  • Moderate improvement in instruction counts (up to -1.9% on full builds of ripgrep-opt)
  • This was identified as potentially being performance sensitive since it leads to changes in CGU partitioning, but unfortunately, @bors has already been invoked on the PR. Arguably, we should have run a performance test anyway.
  • This seemed to impact the deeply-nested-async benchmark which has the tendency to be more sensitive to changes like this.
  • Follow-up comment: https://github.com/rust-lang/rust/pull/86777#issuecomment-874779995

Inline Iterator as IntoIterator. #84560

  • Large regression in instruction counts (up to 6.2% on incr-patched: println builds of webrender-opt)
  • Moderate improvement in instruction counts (up to -3.2% on full builds of deeply-nested-opt)
  • Performance run was run on the change which looks similar to results here. Given that this led to fairly significant regressions in some benchmarks, there should probably be some justification as to why the performance regressions are acceptable.
  • Follow-up comment: https://github.com/rust-lang/rust/pull/84560#issuecomment-874781386

Nags requiring follow up

  • Now that we are adding labels to performance regressions, it should hopefully be easier to follow up.
  • Last week's follow up on max-rss regression in #86034 has not been addressed.

Nominated Issues

T-rustdoc

  • Generate links to definition in rustdoc source code pages #84176
    • Authored by @GuillaumeGomez
    • approved by T-rustdoc
    • mentioned in a past meeting
    • needs a final look by T-compiler for merge (@GuillaumeGomez can't merge own PR)

T-compiler

  • "match an std::cmp::Ordering generates less optimized code in nightly" rust#86511
    • a comment mentions these issues #86391 and #86354
    • issue nominated for help in finding someone giving some context for an accurate priority to track the issue
  • "Binary size is significant increased from 1.46.0 to 1.51.0" rust#86610
    • perhaps related to one or more issues about the same theme (see mentioned issues, ex. rust#86431 was mentioned)
    • issue nominated as FIY for T-compiler. Can this be tracked in perf?

RFC

  • No nominated RFCs for T-compiler this time.
Select a repo