Determines if a block dominates any predecessor and thus is a loop header.
(block: Block, cfg: &ControlFlowGraph, domtree: &DominatorTree)
| 193 | // Determines if a block dominates any predecessor |
| 194 | // and thus is a loop header. |
| 195 | fn is_block_loop_header(block: Block, cfg: &ControlFlowGraph, domtree: &DominatorTree) -> bool { |
| 196 | // A block is a loop header if it dominates any of its predecessors. |
| 197 | cfg.pred_iter(block) |
| 198 | .any(|pred| domtree.block_dominates(block, pred.block)) |
| 199 | } |
| 200 | |
| 201 | // Traverses the CFG in reverse postorder and create a loop object for every block having a |
| 202 | // back edge. |
nothing calls this directly
no test coverage detected