From e498def1a84b8acdc20484a35ab4dc9780869e16 Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Fri, 17 Jan 2020 08:09:58 -0500 Subject: [PATCH] Add notes for compiler team triage meeting on 2019-12-12 --- content/minutes/triage-meeting/2019-12-12.md | 73 ++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 content/minutes/triage-meeting/2019-12-12.md diff --git a/content/minutes/triage-meeting/2019-12-12.md b/content/minutes/triage-meeting/2019-12-12.md new file mode 100644 index 00000000..aef84fd1 --- /dev/null +++ b/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/