forked from rust-lang/compiler-team
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request rust-lang#238 from rust-lang/wesleywiser-patch-1
Add notes for compiler team triage meeting on 2019-12-12
- Loading branch information
Showing
1 changed file
with
73 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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/ |