if (verbose) { System.out.println("\t Before applying transfor function:"); System.out.println("\t currentSet: " + currentSet); System.out.println("\t exceptionBlockSummary: " + exceptionBlockSummary); }             if (bbLiveInfo[block.getNumber()].BBKillSet() == null) { bbLiveInfo[block.getNumber()].createKillAndGen(); computeBlockGenAndKill(block,ir); }    currentSet.remove(bbLiveInfo[block.getNumber()].BBKillSet()); if (blockHasHandlers) {    currentSet.add(exceptionBlockSummary);     currentSet.remove(bbLiveInfo[block.getNumber()].firstPEIKillSet()); }    currentSet.add(bbLiveInfo[block.getNumber()].getGen());     if (bbLiveInfo[block.getNumber()].getIn().add(currentSet)) { if (verbose) { System.out.println(" *** processBlock returning true, currentSet: " + currentSet); } return  true; } else { if (verbose) { System.out.println(" *** processBlock returning false, currentSet: " + currentSet); } return  false; } }
  private boolean processBlock(OPT_BasicBlock block, boolean reuseCurrentSet,                               OPT_IR ir) {    if (verbose) {      System.out.println(" *** processing block " + block + " # out edges: "          + block.getNumberOfOut());      block.printExtended();    }    // Used in processBlock as a summary of the IN sets of all    // exception handlers for the block    OPT_LiveSet exceptionBlockSummary = new OPT_LiveSet();                boolean blockHasHandlers =       bbLiveInfo[block.getNumber()].getContainsPEIWithHandler();    // The computation of the Kill set takes into consideration exception    // semantics, i.e., that live information may flow into the middle    // of a basic block due to implicit edges at exception points.    // We keep 2 kill sets.     //     BBKillSet() contains variables that are killed if the block    //              is exited in the normal fashion    //     firstPEIKillSet() contains variables that are definitely killed      //              before the first PEI is executed.     //       This set contains only variables that are definitely    //       killed in this block despite the implicit exception edges.    //    if (!reuseCurrentSet) {      currentSet.clear();      // visit each successor, if it is a regular successor, add      // it to "currentSet".  If it is a handler block, add it to      // ExceptionBlockSummary.      for (OPT_BasicBlockEnumeration enum = block.getOut();           enum.hasMoreElements();) {        OPT_BasicBlock succ = (OPT_BasicBlock)enum.next();        // sometimes we may have a CFG edge to a handler, but no longer a        //   PEI that can make the edge realizable.  Thus, we have two        //   conditions in the following test.        if (blockHasHandlers && succ.isExceptionHandlerBasicBlock()) {          exceptionBlockSummary.add(bbLiveInfo[succ.getNumber()].getIn());        } else {          currentSet.add(bbLiveInfo[succ.getNumber()].getIn());        }      }    }