private static void printInstruction(@NotNull StringBuilder builder,
                                       @NotNull Instruction instruction,
                                       @NotNull ControlFlowProvider provider) {
    PsiElement element = instruction.getElement();
    Class<? extends Instruction> instructionClass = instruction.getClass();
    builder.append("Instruction").append(instruction.num()).append("[font=\"Courier\", label=\"")
      .append(element != null ? escape(element.getText()) : "").append(" \\n(").append(instruction.num()).append(")[")
      .append(element != null ? element.getClass().getSimpleName() : "null").append("]").append(System.lineSeparator())
      .append("{").append(instructionClass.getSimpleName().isEmpty()
                          ? instructionClass.getSuperclass().getSimpleName()
                          : instructionClass.getSimpleName() ).append("}");
    String additionalInfo = provider.getAdditionalInfo(instruction);

    if (additionalInfo != null) {
      builder.append("\n{").append(additionalInfo).append("}");
    }
  }
private static void printInstruction(@NotNull StringBuilder builder,
                                       @NotNull Instruction instruction,
                                       @NotNull ControlFlowProvider provider)