code: private boolean optimizeGoto(String target) throws IOException
      {
          if (!optimizeGoto)
          {
              return false;
          }
          // is this fragment starter
          int lastOpCode = out.getLastOpCode();
          switch (lastOpCode)
          {
              case GOTO:
              case GOTO_W:
              case RET:
              case IRETURN:
              case LRETURN:
              case FRETURN:
              case DRETURN:
              case ARETURN:
              case RETURN:
              case TABLESWITCH:
              case LOOKUPSWITCH:
                  break;
              default:
                  return false;
          }
          int position = position();
          Label label = labelForAddress(position);
          if (label == null)
          {
              return false;
          }
          label.resetAddress();
          Label targetLabel = labels.get(target);
          if (targetLabel != null)
          {
              Label union = new Label(label, targetLabel);
              for (String name : union.getNames())
              {
                  labels.remove(name);
                  labels.put(name, union);
              }
              labels.put(target, union);
              int addr = targetLabel.getAddress();
              if (addr != -1)
              {
                  union.setAddress(addr);
              }
          }
          else
          {
              labels.put(target, label);
              label.addName(target);
          }
          return true;
      }
docs: Branch always (wide index)
  @param target
  @throws IOException