/** * 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(); }