/**
  * This method returns the set of blocks that dominates the passed block, i.e., it answers the
  * question "Who dominates me?"
  *
  * @param ir the governing IR
  * @return a BitVector containing those blocks that dominate me
  */
 BitVector dominators(IR ir) {
   // Currently, this set is computed on demand,
   // but we cache it for the next time.
   if (dominators == null) {
     dominators = new BitVector(ir.getMaxBasicBlockNumber() + 1);
     dominators.set(block.getNumber());
     DominatorTreeNode node = this;
     while ((node = (DominatorTreeNode) getParent()) != null) {
       dominators.set(node.getBlock().getNumber());
     }
   }
   return dominators;
 }
 /**
  * Return a string representation of the dominance frontier for this node.
  *
  * @return a string representation of the dominance frontier for this node
  */
 String dominanceFrontierString() {
   return dominanceFrontier.toString();
 }