public class com.oracle.graal.python.benchmarks.interop.PyFannkuchredux extends com.oracle.graal.python.benchmarks.interop.BenchRunner
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux
  super_class: com.oracle.graal.python.benchmarks.interop.BenchRunner
{
  public int arg1;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Param(value = {"11"})

  private org.graalvm.polyglot.Value createArray;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
         0: .line 49
            aload 0 /* this */
            invokespecial com.oracle.graal.python.benchmarks.interop.BenchRunner.<init>:()V
            return
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/benchmarks/interop/PyFannkuchredux;

  public void setup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
         0: .line 57
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "### setup ..."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 58
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.context:Lorg/graalvm/polyglot/Context;
            ldc "python"
         2: .line 59
            ldc "from array import array\ndef create_array(n):  return array('i', range(n))\ncreate_array"
         3: .line 58
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.createArray:Lorg/graalvm/polyglot/Value;
         4: .line 63
            return
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/graal/python/benchmarks/interop/PyFannkuchredux;
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Setup()

  public void fannkuchredux3(org.openjdk.jmh.infra.Blackhole);
    descriptor: (Lorg/openjdk/jmh/infra/Blackhole;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
        start local 1 // org.openjdk.jmh.infra.Blackhole bh
         0: .line 67
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.arg1:I
            invokevirtual com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.fannkuch:(I)[I
            astore 2 /* result */
        start local 2 // int[] result
         1: .line 68
            aload 1 /* bh */
            aload 2 /* result */
            invokevirtual org.openjdk.jmh.infra.Blackhole.consume:(Ljava/lang/Object;)V
         2: .line 69
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* result */
            iconst_0
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 70
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Pfannkuchen(%d) = %d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.arg1:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 2 /* result */
            iconst_1
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 71
            return
        end local 2 // int[] result
        end local 1 // org.openjdk.jmh.infra.Blackhole bh
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/graal/python/benchmarks/interop/PyFannkuchredux;
            0    5     1      bh  Lorg/openjdk/jmh/infra/Blackhole;
            1    5     2  result  [I
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Benchmark()
    MethodParameters:
      Name  Flags
      bh    

  public int[] fannkuch(int);
    descriptor: (I)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=18, args_size=2
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
        start local 1 // int n
         0: .line 74
            iconst_2
            newarray 10
            astore 2 /* result */
        start local 2 // int[] result
         1: .line 76
            aload 0 /* this */
            iload 1 /* n */
            invokevirtual com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.array:(I)Lorg/graalvm/polyglot/Value;
            astore 15 /* p */
        start local 15 // org.graalvm.polyglot.Value p
         2: .line 77
            aload 0 /* this */
            iload 1 /* n */
            invokevirtual com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.array:(I)Lorg/graalvm/polyglot/Value;
            astore 16 /* q */
        start local 16 // org.graalvm.polyglot.Value q
         3: .line 78
            aload 0 /* this */
            iload 1 /* n */
            invokevirtual com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.array:(I)Lorg/graalvm/polyglot/Value;
            astore 17 /* s */
        start local 17 // org.graalvm.polyglot.Value s
         4: .line 79
            iconst_1
            istore 3 /* sign */
        start local 3 // int sign
         5: .line 80
            iconst_0
            istore 4 /* maxflips */
        start local 4 // int maxflips
         6: .line 81
            iconst_0
            istore 5 /* summ */
        start local 5 // int summ
         7: .line 82
            iload 1 /* n */
            iconst_1
            isub
            istore 7 /* m */
        start local 7 // int m
         8: .line 84
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int top int top top top top top top top org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            aload 15 /* p */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            istore 8 /* q0 */
        start local 8 // int q0
         9: .line 85
            iload 8 /* q0 */
            ifeq 35
        10: .line 86
            iconst_1
            istore 10 /* i */
        start local 10 // int i
        11: .line 87
            goto 14
        12: .line 88
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int top int int top int top top top top org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            aload 16 /* q */
            iload 10 /* i */
            aload 15 /* p */
            iload 10 /* i */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        13: .line 89
            iinc 10 /* i */ 1
        14: .line 87
      StackMap locals:
      StackMap stack:
            iload 10 /* i */
            iload 1 /* n */
            if_icmplt 12
        15: .line 91
            iconst_1
            istore 6 /* flips */
        start local 6 // int flips
        16: .line 93
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int int int int top int top top top top org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            aload 16 /* q */
            iload 8 /* q0 */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            istore 9 /* qq */
        start local 9 // int qq
        17: .line 94
            iload 9 /* qq */
            ifne 22
        18: .line 95
            iload 5 /* summ */
            iload 3 /* sign */
            iload 6 /* flips */
            imul
            iadd
            istore 5 /* summ */
        19: .line 96
            iload 6 /* flips */
            iload 4 /* maxflips */
            if_icmple 35
        20: .line 97
            iload 6 /* flips */
            istore 4 /* maxflips */
        21: .line 99
            goto 35
        22: .line 101
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int int int int int int top top top top org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            aload 16 /* q */
            iload 8 /* q0 */
            iload 8 /* q0 */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        23: .line 102
            iload 8 /* q0 */
            iconst_3
            if_icmplt 32
        24: .line 103
            iconst_1
            istore 10 /* i */
        25: .line 104
            iload 8 /* q0 */
            iconst_1
            isub
            istore 12 /* j */
        start local 12 // int j
        26: .line 106
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int int int int int int top int top top org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            aload 16 /* q */
            iload 10 /* i */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            istore 14 /* tmp */
        start local 14 // int tmp
        27: .line 107
            aload 16 /* q */
            iload 10 /* i */
            aload 16 /* q */
            iload 12 /* j */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        28: .line 108
            aload 16 /* q */
            iload 12 /* j */
            iload 14 /* tmp */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        29: .line 109
            iinc 10 /* i */ 1
        30: .line 110
            iinc 12 /* j */ -1
        31: .line 111
            iload 10 /* i */
            iload 12 /* j */
            if_icmplt 26
        end local 14 // int tmp
        end local 12 // int j
        32: .line 116
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int int int int int int top top top top org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            iload 9 /* qq */
            istore 8 /* q0 */
        33: .line 117
            iinc 6 /* flips */ 1
        end local 9 // int qq
        34: .line 92
            goto 16
        end local 10 // int i
        end local 6 // int flips
        35: .line 121
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int top int int top top top top top top org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            iload 3 /* sign */
            iconst_1
            if_icmpne 41
        36: .line 122
            aload 15 /* p */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            istore 14 /* tmp */
        start local 14 // int tmp
        37: .line 123
            aload 15 /* p */
            iconst_1
            aload 15 /* p */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        38: .line 124
            aload 15 /* p */
            iconst_0
            iload 14 /* tmp */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        39: .line 126
            iconst_m1
            istore 3 /* sign */
        40: .line 127
            goto 8
        end local 14 // int tmp
        41: .line 128
      StackMap locals:
      StackMap stack:
            aload 15 /* p */
            iconst_1
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            istore 14 /* tmp */
        start local 14 // int tmp
        42: .line 129
            aload 15 /* p */
            iconst_1
            aload 15 /* p */
            iconst_2
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        43: .line 130
            aload 15 /* p */
            iconst_2
            iload 14 /* tmp */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        44: .line 132
            iconst_1
            istore 3 /* sign */
        45: .line 133
            iconst_2
            istore 10 /* i */
        start local 10 // int i
        46: .line 134
            goto 64
        47: .line 135
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int top int int top int top top top int org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            aload 17 /* s */
            iload 10 /* i */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            istore 13 /* sx */
        start local 13 // int sx
        48: .line 136
            iload 13 /* sx */
            ifeq 51
        49: .line 137
            aload 17 /* s */
            iload 10 /* i */
            iload 13 /* sx */
            iconst_1
            isub
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        50: .line 138
            goto 8
        51: .line 140
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int top int int top int top top int int org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            iload 10 /* i */
            iload 7 /* m */
            if_icmpne 55
        52: .line 141
            aload 2 /* result */
            iconst_0
            iload 5 /* summ */
            iastore
        53: .line 142
            aload 2 /* result */
            iconst_1
            iload 4 /* maxflips */
            iastore
        54: .line 143
            aload 2 /* result */
            areturn
        55: .line 145
      StackMap locals:
      StackMap stack:
            aload 17 /* s */
            iload 10 /* i */
            iload 10 /* i */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        56: .line 146
            aload 15 /* p */
            iconst_0
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            istore 11 /* t */
        start local 11 // int t
        57: .line 147
            iconst_0
            istore 12 /* j */
        start local 12 // int j
        58: .line 148
            goto 61
        59: .line 149
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int top int int top int int int int int org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            aload 15 /* p */
            iload 12 /* j */
            aload 15 /* p */
            iload 12 /* j */
            iconst_1
            iadd
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.geti:(Lorg/graalvm/polyglot/Value;I)I
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        60: .line 150
            iinc 12 /* j */ 1
        61: .line 148
      StackMap locals:
      StackMap stack:
            iload 12 /* j */
            iload 10 /* i */
            if_icmple 59
        62: .line 152
            aload 15 /* p */
            iload 10 /* i */
            iconst_1
            iadd
            iload 11 /* t */
            invokestatic com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.seti:(Lorg/graalvm/polyglot/Value;II)V
        63: .line 153
            iinc 10 /* i */ 1
        end local 13 // int sx
        end local 12 // int j
        end local 11 // int t
        64: .line 134
      StackMap locals: com.oracle.graal.python.benchmarks.interop.PyFannkuchredux int int[] int int int top int int top int top top top int org.graalvm.polyglot.Value org.graalvm.polyglot.Value org.graalvm.polyglot.Value
      StackMap stack:
            iload 10 /* i */
            iload 1 /* n */
            if_icmplt 47
        end local 14 // int tmp
        end local 10 // int i
        end local 8 // int q0
        65: .line 83
            goto 8
        end local 17 // org.graalvm.polyglot.Value s
        end local 16 // org.graalvm.polyglot.Value q
        end local 15 // org.graalvm.polyglot.Value p
        end local 7 // int m
        end local 5 // int summ
        end local 4 // int maxflips
        end local 3 // int sign
        end local 2 // int[] result
        end local 1 // int n
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   66     0      this  Lcom/oracle/graal/python/benchmarks/interop/PyFannkuchredux;
            0   66     1         n  I
            1   66     2    result  [I
            5   66     3      sign  I
            6   66     4  maxflips  I
            7   66     5      summ  I
           16   35     6     flips  I
            8   66     7         m  I
            9   65     8        q0  I
           17   34     9        qq  I
           11   35    10         i  I
           46   65    10         i  I
           57   64    11         t  I
           26   32    12         j  I
           58   64    12         j  I
           48   64    13        sx  I
           27   32    14       tmp  I
           37   41    14       tmp  I
           42   65    14       tmp  I
            2   66    15         p  Lorg/graalvm/polyglot/Value;
            3   66    16         q  Lorg/graalvm/polyglot/Value;
            4   66    17         s  Lorg/graalvm/polyglot/Value;
    MethodParameters:
      Name  Flags
      n     

  public org.graalvm.polyglot.Value array(int);
    descriptor: (I)Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
        start local 1 // int n
         0: .line 160
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.createArray:Lorg/graalvm/polyglot/Value;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.graal.python.benchmarks.interop.PyFannkuchredux.context:Lorg/graalvm/polyglot/Context;
            iload 1 /* n */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 1 // int n
        end local 0 // com.oracle.graal.python.benchmarks.interop.PyFannkuchredux this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/benchmarks/interop/PyFannkuchredux;
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      n     
}
SourceFile: "PyFannkuchredux.java"