Navigation Menu

Skip to content

Commit

Permalink
Add notes for compiler team triage meeting on 2019-12-12
Browse files Browse the repository at this point in the history
  • Loading branch information
wesleywiser committed Jan 17, 2020
1 parent 637a16e commit e498def
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions content/minutes/triage-meeting/2019-12-12.md
@@ -0,0 +1,73 @@
---
title: 2019.12.12
type: docs
---

# 2019-12-12

## Announcements

- [@pnkfelix] posted an RFC about future-incompat lints [RFC 2834]

- [@eddyb] landed some additional caching for trait selection which gives some nice speedups [#66821]

- Const eval now has support for `if`/`match` and a PR for `loop`/`while` is open.

- [@eddyb] is resurrecting their SROA MIR optimization [#48300]

## Backport nominations

- resolve: Always resolve visibilities on impl items [#67236]
- Approved for beta backport

- resolve: Resolve visibilities on fields with non-builtin attributes [#67106]
- Approved for beta backport

## Working group sync

### [wg-meta]

- Work has generally slowed down since the launch of the ICE breakers group.

- Some planning for a new "reducer" group has begun.

### [wg-mir-opt]

- MIR does not know about static items anymore.
Instead we just have a constant whose value is `&YOUR_STATIC`, `&raw mut YOUR_MUT_STATIC` or `&raw YOUR_EXTERN_STATIC`.
This simplifies a lot of logic in the MIR and will (together with the next bullet point) allow `PlaceBase` to just be a `Local` (so a u32 index for a local to be accessed). [#66587]

- [@spastorino] is about to finish a PR that removes promoteds from the list of things that are `Place`s in MIR

- `mir::Body` does not contain interior mutability components anymore.
It used to have a cache of some information on the MIR CFG that could get cleared and reinitialized as required.
This is abstracted away in the `BodyCache` type.

- Promoteds inside constants and statics are now actually separated from their constant's `mir::Body` instead of having a scheme around removing `StorageDead` statements [#66642]

- Cross crate inlining now preserves debug info [#66789]

- There is a new MIR optimization eliminating basic blocks that are unreachable because they are match arms of uninhabited variants [#65694]

- There is a new MIR optimization to work around the problem that LLVM can't figure out trivial match arms like `Ok(x) => Ok(x)` [#66282]

- The const prop optimization now runs on all builds (even debug builds) because this gives quite some nice build time improvements [#66074]

- We had a mir-opt room at RustFest, which was a total success and people loved it.

[@eddyb]: https://github.com/eddyb
[@pnkfelix]: https://github.com/pnkfelix
[@spastorino]: https://github.com/spastorino
[#48300]: https://github.com/rust-lang/rust/pull/48300
[#65694]: https://github.com/rust-lang/rust/pull/65694
[#66074]: https://github.com/rust-lang/rust/pull/66074
[#66282]: https://github.com/rust-lang/rust/pull/66282
[#66587]: https://github.com/rust-lang/rust/pull/66587
[#66642]: https://github.com/rust-lang/rust/pull/66642
[#66789]: https://github.com/rust-lang/rust/pull/66789
[#66821]: https://github.com/rust-lang/rust/pull/66821
[#67106]: https://github.com/rust-lang/rust/pull/67106
[#67236]: https://github.com/rust-lang/rust/pull/67236
[RFC 2834]: https://github.com/rust-lang/rfcs/pull/2834
[wg-meta]: https://rust-lang.github.io/compiler-team/working-groups/meta/
[wg-mir-opt]: https://rust-lang.github.io/compiler-team/working-groups/mir-opt/

0 comments on commit e498def

Please sign in to comment.