private RopMethod convert() {
    if (DEBUG) {
      interference.dumpToStdout();
    }

    // These are other allocators for debugging or historical comparison:
    // allocator = new NullRegisterAllocator(ssaMeth, interference);
    // allocator = new FirstFitAllocator(ssaMeth, interference);

    RegisterAllocator allocator =
        new FirstFitLocalCombiningAllocator(ssaMeth, interference, minimizeRegisters);

    RegisterMapper mapper = allocator.allocateRegisters();

    if (DEBUG) {
      System.out.println("Printing reg map");
      System.out.println(((BasicRegisterMapper) mapper).toHuman());
    }

    ssaMeth.setBackMode();

    ssaMeth.mapRegisters(mapper);

    removePhiFunctions();

    if (allocator.wantsParamsMovedHigh()) {
      moveParametersToHighRegisters();
    }

    removeEmptyGotos();

    RopMethod ropMethod =
        new RopMethod(
            convertBasicBlocks(), ssaMeth.blockIndexToRopLabel(ssaMeth.getEntryBlockIndex()));
    ropMethod = new IdenticalBlockCombiner(ropMethod).process();

    return ropMethod;
  }
Performs the conversion.

@return {@code non-null;} rop-form output
android/android_framework/dex-maker/src/main/java/com/android/dx/ssa/back/SsaToRop.java