Skip to content

Commit 17adfeb

Browse files
committed
Move dominators from Body to BasicBlocks
1 parent dfa6a7c commit 17adfeb

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

compiler/rustc_borrowck/src/invalidation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pub(super) fn generate_invalidates<'tcx>(
2626

2727
if let Some(all_facts) = all_facts {
2828
let _prof_timer = tcx.prof.generic_activity("polonius_fact_generation");
29-
let dominators = body.dominators();
29+
let dominators = body.basic_blocks.dominators();
3030
let mut ig = InvalidationGenerator {
3131
all_facts,
3232
borrow_set,

compiler/rustc_borrowck/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ fn do_mir_borrowck<'a, 'tcx>(
334334
};
335335
}
336336

337-
let dominators = body.dominators();
337+
let dominators = body.basic_blocks.dominators();
338338

339339
let mut mbcx = MirBorrowckCtxt {
340340
infcx,

compiler/rustc_codegen_ssa/src/mir/analyze.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn non_ssa_locals<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>>(
1515
fx: &FunctionCx<'a, 'tcx, Bx>,
1616
) -> BitSet<mir::Local> {
1717
let mir = fx.mir;
18-
let dominators = mir.dominators();
18+
let dominators = mir.basic_blocks.dominators();
1919
let locals = mir
2020
.local_decls
2121
.iter()

compiler/rustc_middle/src/mir/basic_blocks.rs

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::mir::traversal::PostorderCache;
55
use crate::mir::{BasicBlock, BasicBlockData, Successors, START_BLOCK};
66

77
use rustc_data_structures::graph;
8+
use rustc_data_structures::graph::dominators::{dominators, Dominators};
89
use rustc_index::vec::IndexVec;
910

1011
#[derive(Clone, TyEncodable, TyDecodable, Debug, HashStable, TypeFoldable, TypeVisitable)]
@@ -34,6 +35,11 @@ impl<'tcx> BasicBlocks<'tcx> {
3435
self.is_cyclic.is_cyclic(self)
3536
}
3637

38+
#[inline]
39+
pub fn dominators(&self) -> Dominators<BasicBlock> {
40+
dominators(&self)
41+
}
42+
3743
/// Returns predecessors for each basic block.
3844
#[inline]
3945
pub fn predecessors(&self) -> &Predecessors {

compiler/rustc_middle/src/mir/mod.rs

+1-6
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use rustc_target::abi::{Size, VariantIdx};
2626
use polonius_engine::Atom;
2727
pub use rustc_ast::Mutability;
2828
use rustc_data_structures::fx::FxHashSet;
29-
use rustc_data_structures::graph::dominators::{dominators, Dominators};
29+
use rustc_data_structures::graph::dominators::Dominators;
3030
use rustc_index::bit_set::BitMatrix;
3131
use rustc_index::vec::{Idx, IndexVec};
3232
use rustc_serialize::{Decodable, Encodable};
@@ -447,11 +447,6 @@ impl<'tcx> Body<'tcx> {
447447
.unwrap_or_else(|| Either::Right(block_data.terminator()))
448448
}
449449

450-
#[inline]
451-
pub fn dominators(&self) -> Dominators<BasicBlock> {
452-
dominators(&self.basic_blocks)
453-
}
454-
455450
#[inline]
456451
pub fn yield_ty(&self) -> Option<Ty<'tcx>> {
457452
self.generator.as_ref().and_then(|generator| generator.yield_ty)

0 commit comments

Comments
 (0)