Move switch_sources from Body to BasicBlocks

This commit is contained in:
Tomasz Miąsko 2022-07-05 00:00:00 +00:00
parent 39d9c1cb1f
commit dfa6a7cbde
2 changed files with 1 additions and 9 deletions

View File

@ -42,7 +42,6 @@ use std::ops::{ControlFlow, Index, IndexMut};
use std::{iter, mem};
pub use self::query::*;
use self::switch_sources::SwitchSources;
pub use basic_blocks::BasicBlocks;
mod basic_blocks;
@ -448,13 +447,6 @@ impl<'tcx> Body<'tcx> {
.unwrap_or_else(|| Either::Right(block_data.terminator()))
}
/// `body.switch_sources()[&(target, switch)]` returns a list of switch
/// values that lead to a `target` block from a `switch` block.
#[inline]
pub fn switch_sources(&self) -> &SwitchSources {
self.basic_blocks.switch_sources()
}
#[inline]
pub fn dominators(&self) -> Dominators<BasicBlock> {
dominators(&self.basic_blocks)

View File

@ -316,7 +316,7 @@ where
fn apply(&mut self, mut apply_edge_effect: impl FnMut(&mut D, SwitchIntTarget)) {
assert!(!self.effects_applied);
let values = &self.body.switch_sources()[&(self.bb, self.pred)];
let values = &self.body.basic_blocks.switch_sources()[&(self.bb, self.pred)];
let targets = values.iter().map(|&value| SwitchIntTarget { value, target: self.bb });
let mut tmp = None;