rust/compiler/rustc_mir_dataflow/src
bors 2b90614e94 Auto merge of #127036 - cjgillot:sparse-state, r=oli-obk
Make jump threading state sparse

Continuation of https://github.com/rust-lang/rust/pull/127024

Both dataflow const-prop and jump threading involve cloning the state vector a lot. This PR replaces the data structure by a sparse vector, considering:
- that jump threading state is typically very sparse (at most 1 or 2 set entries);
- that dataflow const-prop is disabled by default;
- that place/value map is very eager, and prone to creating an overly large state.

The first commit is shared with the previous PR to avoid needless conflicts.

r? `@oli-obk`
2024-07-03 18:52:04 +00:00
..
framework Make jump threading state sparse. 2024-07-01 15:41:21 +00:00
impls Split lifetimes on mir borrowck dataflow 2024-06-26 16:01:44 +00:00
move_paths Remove #[macro_use] extern crate tracing from rustc_mir_dataflow. 2024-05-23 18:02:40 +10:00
debuginfo.rs Preserve DebugInfo in DeadStoreElimination. 2023-10-06 15:46:11 +00:00
drop_flag_effects.rs Remove #[macro_use] extern crate tracing from rustc_mir_dataflow. 2024-05-23 18:02:40 +10:00
elaborate_drops.rs Save 2 pointers in TerminatorKind (96 → 80 bytes) 2024-06-21 18:02:05 -07:00
errors.rs Migrate all diagnostics 2022-10-23 10:09:44 +02:00
lib.rs Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
points.rs Use a plain bitset for liveness analyses. 2024-01-22 23:18:45 +00:00
rustc_peek.rs Remove #[macro_use] extern crate tracing from rustc_mir_dataflow. 2024-05-23 18:02:40 +10:00
storage.rs Replace Body::basic_blocks() with field access 2022-08-26 14:27:08 +02:00
un_derefer.rs Avoid unnecessary exports. 2023-11-23 14:06:57 +11:00
value_analysis.rs Make jump threading state sparse. 2024-07-01 15:41:21 +00:00