pub fn reverse_postorder<'a, 'tcx>(
    body: &'a Body<'tcx>,
) -> impl Iterator<Item = (BasicBlock, &'a BasicBlockData<'tcx>)> + ExactSizeIterator + DoubleEndedIteratorExpand description
Reverse postorder traversal of a graph.
This function creates an iterator over the Body’s basic blocks, that:
- returns basic blocks in a reverse postorder,
- makes use of the BasicBlocksCFG cache’s reverse postorder.
Reverse postorder is the reverse order of a postorder traversal. This is different to a preorder traversal and represents a natural linearization of control-flow.
        A
       / \
      /   \
     B     C
      \   /
       \ /
        DA reverse postorder traversal of this graph is either A B C D or A C B D
Note that for a graph containing no loops (i.e., A DAG), this is equivalent to
a topological sort.