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. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| messages.ftl | ||