private void updateSuccessorPhis() {
      PhiInsn.Visitor visitor =
          new PhiInsn.Visitor() {
            @Override
            public void visitPhiInsn(PhiInsn insn) {
              int ropReg;

              ropReg = insn.getRopResultReg();
              if (isBelowThresholdRegister(ropReg)) {
                return;
              }

              /*
               * Never add a version 0 register as a phi
               * operand. Version 0 registers represent the
               * initial register state, and thus are never
               * significant. Furthermore, the register liveness
               * algorithm doesn't properly count them as "live
               * in" at the beginning of the method.
               */

              RegisterSpec stackTop = currentMapping[ropReg];
              if (!isVersionZeroRegister(stackTop.getReg())) {
                insn.addPhiOperand(stackTop, block);
              }
            }
          };

      BitSet successors = block.getSuccessors();
      for (int i = successors.nextSetBit(0); i >= 0; i = successors.nextSetBit(i + 1)) {
        SsaBasicBlock successor = ssaMeth.getBlocks().get(i);
        successor.forEachPhiInsn(visitor);
      }
    }
Updates the phi insns in successor blocks with operands based on the current mapping of the
rop register the phis represent.
android/android_framework/dex-maker/src/main/java/com/android/dx/ssa/SsaRenamer.java