Commit c7aa99f
committed
Auto merge of rust-lang#142881 - cjgillot:minimap, r=saethlin
JumpThreading: compute place and value indices on-demand
Profiling JumpThreading reveals that a large part of the runtime happens constructing the place and value `Map`. This is unfortunate, as jump-threading may end up not even doing anything.
The cause for this large up-front cost is following: `Map` attempts to create a `PlaceIndex` for each place that *may* hold a relevant value. This means all places that appear in MIR, but also all places whose value is accessed by a projection of a copy of a larger place.
This PR refactors the creation of `Map` to happen on-demand: place and value indices are created when threading computation happens.
The up-front mode is still relevant for DataflowConstProp, so is not touched.File tree
5 files changed
+443
-324
lines changed- compiler
- rustc_mir_dataflow/src
- rustc_mir_transform/src
- tests/coverage
5 files changed
+443
-324
lines changed
0 commit comments