if (bb == null) return new OPT_Instruction[0];
  private OPT_Instruction[] copyAndMapInstructions(OPT_BasicBlock bb,                                                   HashMap map) {    int count = 0;    // first count the number of instructions    for (Enumeration e = bb.forwardRealInstrEnumerator();         e.hasMoreElements(); ) {      OPT_Instruction s = (OPT_Instruction)e.nextElement();      if (s.isBranch()) continue;      count++;    }    // now copy.    OPT_Instruction[] result = new OPT_Instruction[count];    int i = 0;    for (Enumeration e = bb.forwardRealInstrEnumerator();          e.hasMoreElements(); ) {      OPT_Instruction s = (OPT_Instruction)e.nextElement();      if (s.isBranch()) continue;      OPT_Instruction sprime = s.copyWithoutLinks();      result[i++] = sprime;      map.put(s,sprime);    }    return result;  }