Improve domtree as per @Amanieu's feedback.
This commit is contained in:
@@ -98,6 +98,10 @@ pub fn calculate<'a, PredFn: Fn(Block) -> &'a [Block]>(
|
||||
}
|
||||
}
|
||||
|
||||
// Now set the start node's dominator-tree parent to "invalid";
|
||||
// this allows the loop in `dominates` to terminate.
|
||||
idom[start.index()] = Block::invalid();
|
||||
|
||||
idom
|
||||
}
|
||||
|
||||
@@ -109,10 +113,6 @@ pub fn dominates(idom: &[Block], a: Block, mut b: Block) -> bool {
|
||||
if b.is_invalid() {
|
||||
return false;
|
||||
}
|
||||
let parent = idom[b.index()];
|
||||
if b == parent {
|
||||
return false;
|
||||
}
|
||||
b = idom[b.index()];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user