Skip to content

Commit

Permalink
Rollup merge of rust-lang#116612 - tmiasko:rm-dom-iter, r=cjgillot
Browse files Browse the repository at this point in the history
Remove unused dominator iterator
  • Loading branch information
aliemjay authored Oct 11, 2023
2 parents 494e971 + b61a6d5 commit 88a929b
Showing 1 changed file with 1 addition and 26 deletions.
27 changes: 1 addition & 26 deletions compiler/rustc_data_structures/src/graph/dominators/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ struct Inner<N: Idx> {
post_order_rank: IndexVec<N, usize>,
// Even though we track only the immediate dominator of each node, it's
// possible to get its full list of dominators by looking up the dominator
// of each dominator. (See the `impl Iterator for Iter` definition).
// of each dominator.
immediate_dominators: IndexVec<N, Option<N>>,
time: IndexVec<N, Time>,
}
Expand Down Expand Up @@ -377,13 +377,6 @@ impl<Node: Idx> Dominators<Node> {
}
}

/// Provides an iterator over each dominator up the CFG, for the given Node.
/// See the `impl Iterator for Iter` definition to understand how this works.
pub fn dominators(&self, node: Node) -> Iter<'_, Node> {
assert!(self.is_reachable(node), "node {node:?} is not reachable");
Iter { dom_tree: self, node: Some(node) }
}

/// Provide deterministic ordering of nodes such that, if any two nodes have a dominator
/// relationship, the dominator will always precede the dominated. (The relative ordering
/// of two unrelated nodes will also be consistent, but otherwise the order has no
Expand Down Expand Up @@ -413,24 +406,6 @@ impl<Node: Idx> Dominators<Node> {
}
}

pub struct Iter<'dom, Node: Idx> {
dom_tree: &'dom Dominators<Node>,
node: Option<Node>,
}

impl<'dom, Node: Idx> Iterator for Iter<'dom, Node> {
type Item = Node;

fn next(&mut self) -> Option<Self::Item> {
if let Some(node) = self.node {
self.node = self.dom_tree.immediate_dominator(node);
Some(node)
} else {
None
}
}
}

/// Describes the number of vertices discovered at the time when processing of a particular vertex
/// started and when it finished. Both values are zero for unreachable vertices.
#[derive(Copy, Clone, Default, Debug)]
Expand Down

0 comments on commit 88a929b

Please sign in to comment.