private void compress(BasicBlock block){
  if (getAncestor(getAncestor(block)) != null) {
    compress(getAncestor(block));
    LTDominatorInfo blockInfo=LTDominatorInfo.getInfo(block,ir);
    if (getSemi(getLabel(getAncestor(block))) < getSemi(getLabel(block))) {
      blockInfo.setLabel(getLabel(getAncestor(block)));
    }
    blockInfo.setAncestor(getAncestor(getAncestor(block)));
  }
}

private void compress ( BasicBlock block ) { if ( getAncestor ( getAncestor ( block ) ) != null ) { compress ( getAncestor ( block ) ) ; LTDominatorInfo blockInfo = LTDominatorInfo . getInfo ( block , ir ) ; if ( getSemi ( getLabel ( getAncestor ( block ) ) ) < getSemi ( getLabel ( block ) ) ) { blockInfo . setLabel ( getLabel ( getAncestor ( block ) ) ) ; } blockInfo . setAncestor ( getAncestor ( getAncestor ( block ) ) ) ; } }
this recursive method performs the path compression
