diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2025-02-11 16:33:17 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2025-02-17 09:36:12 +1100 |
| commit | 13003100f803419307ada53620d00aa51ea678db (patch) | |
| tree | 1a669746ff77732ad0e41d26b87179547e47746b | |
| parent | 5bc62314547c7639484481f62f218156697cfef0 (diff) | |
| download | rust-13003100f803419307ada53620d00aa51ea678db.tar.gz rust-13003100f803419307ada53620d00aa51ea678db.zip | |
Refactor `apply_effects_in_block`.
Very minor changes that will make the next few commits easier to follow.
| -rw-r--r-- | compiler/rustc_mir_dataflow/src/framework/direction.rs | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/compiler/rustc_mir_dataflow/src/framework/direction.rs b/compiler/rustc_mir_dataflow/src/framework/direction.rs index 07517d7edab..528debcaba3 100644 --- a/compiler/rustc_mir_dataflow/src/framework/direction.rs +++ b/compiler/rustc_mir_dataflow/src/framework/direction.rs @@ -112,14 +112,11 @@ impl Direction for Backward { mir::TerminatorKind::SwitchInt { targets: _, ref discr } => { if let Some(mut data) = analysis.get_switch_int_data(block, discr) { - let values = &body.basic_blocks.switch_sources()[&(block, pred)]; - let targets = - values.iter().map(|&value| SwitchIntTarget { value, target: block }); - let mut tmp = analysis.bottom_value(body); - for target in targets { - tmp.clone_from(&exit_state); - analysis.apply_switch_int_edge_effect(&mut data, &mut tmp, target); + for &value in &body.basic_blocks.switch_sources()[&(block, pred)] { + tmp.clone_from(exit_state); + let si_target = SwitchIntTarget { value, target: block }; + analysis.apply_switch_int_edge_effect(&mut data, &mut tmp, si_target); propagate(pred, &tmp); } } else { @@ -292,12 +289,9 @@ impl Direction for Forward { if let Some(mut data) = analysis.get_switch_int_data(block, discr) { let mut tmp = analysis.bottom_value(body); for (value, target) in targets.iter() { - tmp.clone_from(&exit_state); - analysis.apply_switch_int_edge_effect( - &mut data, - &mut tmp, - SwitchIntTarget { value: Some(value), target }, - ); + tmp.clone_from(exit_state); + let si_target = SwitchIntTarget { value: Some(value), target }; + analysis.apply_switch_int_edge_effect(&mut data, &mut tmp, si_target); propagate(target, &tmp); } |
