reversePostOrder property
List<BasicBlock>
get
reversePostOrder
Returns blocks in reverse postorder (useful for dataflow analysis).
Implementation
List<BasicBlock> get reversePostOrder {
final visited = <BasicBlock>{};
final result = <BasicBlock>[];
void visit(BasicBlock block) {
if (visited.contains(block)) return;
visited.add(block);
for (final succ in block.successors) {
visit(succ);
}
result.add(block);
}
visit(entry);
return result.reversed.toList();
}