Optimize dataflow-const-prop place-tracking infra Optimization opportunities found while investigating https://github.com/rust-lang/rust/pull/110719 Computing places breadth-first ensures that we create short projections before deep projections, since the former are more likely to be propagated. The most relevant is the pre-computation of flooded places. Callgrind showed `flood_*` methods and especially `preorder_preinvoke` were especially hot. This PR attempts to pre-compute the set of `ValueIndex` that `preorder_invoke` would visit. Using this information, we make some `PlaceIndex` inaccessible when they contain no `ValueIndex`, allowing to skip computations for those places. cc `@jachris` as original author |
||
|---|---|---|
| .. | ||
| framework | ||
| impls | ||
| move_paths | ||
| drop_flag_effects.rs | ||
| elaborate_drops.rs | ||
| errors.rs | ||
| lib.rs | ||
| rustc_peek.rs | ||
| storage.rs | ||
| un_derefer.rs | ||
| value_analysis.rs | ||