Skip to content

Commit 156c061

Browse files
committed
Adjust the API of the PredecessorMap to reflect the fact that it only tracks the number of predecessors
1 parent 58db206 commit 156c061

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

src/librustc_mir/transform/simplify_cfg.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ impl SimplifyCfg {
6464

6565
if *target != new_target {
6666
changed = true;
67-
predecessor_map.remove_predecessor(*target, bb);
68-
predecessor_map.add_predecessor(new_target, bb);
67+
predecessor_map.remove_predecessor(*target);
68+
predecessor_map.add_predecessor(new_target);
6969
*target = new_target;
7070
}
7171
}
@@ -81,10 +81,9 @@ impl SimplifyCfg {
8181
};
8282
mem::swap(&mut other_data, mir.basic_block_data_mut(target));
8383

84-
predecessor_map.replace_predecessor(target, bb, target);
85-
for succ in other_data.terminator.successors() {
86-
predecessor_map.replace_predecessor(*succ, target, bb);
87-
}
84+
// target used to have 1 predecessor (bb), and still has only one (itself)
85+
// All the successors of target have had target replaced by bb in their
86+
// list of predecessors, keeping the number the same.
8887

8988
let data = mir.basic_block_data_mut(bb);
9089
data.statements.append(&mut other_data.statements);

src/librustc_mir/transform/util.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,13 @@ impl PredecessorMap {
7070
self.map[block.index()]
7171
}
7272

73-
pub fn add_predecessor(&mut self, block: BasicBlock, _predecessor: BasicBlock) {
73+
pub fn add_predecessor(&mut self, block: BasicBlock) {
7474
self.map[block.index()] += 1;
7575
}
7676

77-
pub fn remove_predecessor(&mut self, block: BasicBlock, _predecessor: BasicBlock) {
77+
pub fn remove_predecessor(&mut self, block: BasicBlock) {
7878
self.map[block.index()] -= 1;
7979
}
80-
81-
pub fn replace_predecessor(&mut self, _block: BasicBlock, _old: BasicBlock, _new: BasicBlock) { }
8280
}
8381

8482
struct PredecessorVisitor {
@@ -99,8 +97,8 @@ impl<'tcx> Visitor<'tcx> for PredecessorVisitor {
9997
self.super_mir(mir);
10098
}
10199

102-
fn visit_branch(&mut self, source: BasicBlock, target: BasicBlock) {
103-
self.predecessor_map.add_predecessor(target, source);
100+
fn visit_branch(&mut self, _source: BasicBlock, target: BasicBlock) {
101+
self.predecessor_map.add_predecessor(target);
104102
}
105103
}
106104

0 commit comments

Comments
 (0)