We are currently brainstorming. Feel free to add thoughts of your own.
let x = (a, b);
-> let x_0 = a; let x_1 = b;
)
Rvalue::Aggregate
(next item). @nikomatsakis, can you clarify?Rvalue::Aggregate
(let x = (a, b);
-> x.0 = a; x.1 = b;
)Place
not being recursive anymore, but having a (potentially empty) stack of projections) (https://github.com/rust-lang/rust/issues/52708)rustc
?--teach
moderustc
is usedimpl const Trait for Type
Project | Implementation Cost | Compile Time Improvements | Runtime Perf Gains | Code Quality Gains | Blocked On |
---|---|---|---|---|---|
MIR 2.0 | ? | medium to high | ? | ? | |
incremental save-analysis | medium | high | none | medium | |
end-to-end queries | high | low (general) to medium RLS) | none | ? (depends) | architecture decisions |
multi-crate compilation | high | unknown | medium (~LTO lite) | ? (depends) | architecture decisions |
MIR-only RLIBS | medium | medium | medium (~LTO lite) | low | architecture decisions, parallel queries |
polymorphization | medium | medium (?) | maybe some | low | |
erase regions from types | medium to high | medium (?) | none | high | NLL taking over completely |
MIR-inlining | medium to high | medium (?) | maybe some | none | MIR 2.0 (?) |
MIR-copy propagation | medium (?) | maybe some | maybe some | none | MIR 2.0 (?) |
Parallel Queries | medium (? - by now) | high | none | none | |
module-level queries | low | low | none | none | |
query data-dep cleanup | high | medium to high (incr. only) | none | none | architecture decisions |
PGO | low to medium | maybe some (indirectly) | medium | none | |
Chalk | high | maybe some (?) | none | high | Chalk being full featured? |
Polonius | high | ? | none | high (?) | Polonius being finished? |
Salsa | high | ? | none | high | architecture decisions |
Type-check refactoring | high (?) | maybe some (?) | none | high (?) | erase regions from types |
Revisions (incr. comp.) | medium to high | low to high (incr. only) | none | none | architecture decisions, Salsa (?) |
Separate Diagnostics | medium to high | none | none | medium to high | |
Clean up defining queries | low to medium | none | none | medium |