Class AbstractBlockOrder

  • All Implemented Interfaces:
    BlockOrder
    Direct Known Subclasses:
    ReverseDFSOrder, ReversePostOrder

    public abstract class AbstractBlockOrder
    extends java.lang.Object
    implements BlockOrder
    Abstract base class for BlockOrder variants. It allows the subclass to specify just a Comparator for BasicBlocks, and handles the work of doing the sorting and providing Iterators.
    See Also:
    BlockOrder
    • Constructor Detail

      • AbstractBlockOrder

        public AbstractBlockOrder​(CFG cfg,
                                  java.util.Comparator<BasicBlock> comparator)
    • Method Detail

      • blockIterator

        public java.util.Iterator<BasicBlock> blockIterator()
        Description copied from interface: BlockOrder
        Return an Iterator which visits the basic blocks in order.
        Specified by:
        blockIterator in interface BlockOrder
      • compare

        public int compare​(BasicBlock b1,
                           BasicBlock b2)
        Description copied from interface: BlockOrder
        Return relative order of blocks. If b1.compareTo(b2) < 0, then b1 should occur before b2 in iteration.
        Specified by:
        compare in interface BlockOrder