private static void addEntriesForInfrequentBlocks(IR ir,LiveAnalysis live,HashMap<BasicBlockPair,HashSet<Register>> result){
  for (Enumeration<BasicBlock> e=ir.getBasicBlocks(); e.hasMoreElements(); ) {
    BasicBlock bb=e.nextElement();
    boolean bbInfrequent=bb.getInfrequent();
    for (Enumeration<BasicBlock> out=bb.getNormalOut(); out.hasMoreElements(); ) {
      BasicBlock dest=out.nextElement();
      boolean destInfrequent=dest.getInfrequent();
      if (bbInfrequent ^ destInfrequent) {
        HashSet<Register> liveRegisters=live.getLiveRegistersOnEdge(bb,dest);
        for (        Register r : liveRegisters) {
          if (r.isSymbolic()) {
            HashSet<Register> s=findOrCreateSplitSet(result,bb,dest);
            s.add(r);
          }
        }
      }
    }
  }
}

private static void addEntriesForInfrequentBlocks ( IR ir , LiveAnalysis live , HashMap < BasicBlockPair , HashSet < Register > > result ) { for ( Enumeration < BasicBlock > e = ir . getBasicBlocks ( ) ; e . hasMoreElements ( ) ; ) { BasicBlock bb = e . nextElement ( ) ; boolean bbInfrequent = bb . getInfrequent ( ) ; for ( Enumeration < BasicBlock > out = bb . getNormalOut ( ) ; out . hasMoreElements ( ) ; ) { BasicBlock dest = out . nextElement ( ) ; boolean destInfrequent = dest . getInfrequent ( ) ; if ( bbInfrequent ^ destInfrequent ) { HashSet < Register > liveRegisters = live . getLiveRegistersOnEdge ( bb , dest ) ; for ( Register r : liveRegisters ) { if ( r . isSymbolic ( ) ) { HashSet < Register > s = findOrCreateSplitSet ( result , bb , dest ) ; s . add ( r ) ; } } } } } }
split live ranges on entry and exit to infrequent regions . add this information to ' result ' , a mapping from basicblockpair to a set of registers to split .
