public class com.oracle.graal.python.benchmarks.interop.PyEuler31 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.PyEuler31
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 = {"100"})
private org.graalvm.polyglot.Value newpat;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value EMPTY;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value COINS;
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 0: aload 0
invokespecial com.oracle.graal.python.benchmarks.interop.BenchRunner.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/graal/python/benchmarks/interop/PyEuler31;
public void setup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "### setup ..."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.context:Lorg/graalvm/polyglot/Context;
ldc "python"
2: ldc "def newpat(t, end, p): return t[:end] + (p,)\nnewpat"
3: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyEuler31.newpat:Lorg/graalvm/polyglot/Value;
4: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.context:Lorg/graalvm/polyglot/Context;
ldc "python"
ldc "[1, 2, 5, 10, 20, 50, 100, 200]"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyEuler31.COINS:Lorg/graalvm/polyglot/Value;
5: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.context:Lorg/graalvm/polyglot/Context;
ldc "python"
ldc "()"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyEuler31.EMPTY:Lorg/graalvm/polyglot/Value;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/graal/python/benchmarks/interop/PyEuler31;
RuntimeVisibleAnnotations:
org.openjdk.jmh.annotations.Setup()
public void euler31(org.openjdk.jmh.infra.Blackhole);
descriptor: (Lorg/openjdk/jmh/infra/Blackhole;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.EMPTY:Lorg/graalvm/polyglot/Value;
iconst_0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.arg1:I
invokevirtual com.oracle.graal.python.benchmarks.interop.PyEuler31.gen:(Lorg/graalvm/polyglot/Value;II)I
istore 2
start local 2 1: aload 1
iload 2
invokevirtual org.openjdk.jmh.infra.Blackhole.consume:(I)V
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "total number of different ways: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
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: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/graal/python/benchmarks/interop/PyEuler31;
0 4 1 bh Lorg/openjdk/jmh/infra/Blackhole;
1 4 2 result I
RuntimeVisibleAnnotations:
org.openjdk.jmh.annotations.Benchmark()
MethodParameters:
Name Flags
bh
private int gen(org.graalvm.polyglot.Value, int, int);
descriptor: (Lorg/graalvm/polyglot/Value;II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.COINS:Lorg/graalvm/polyglot/Value;
iload 2
invokestatic com.oracle.graal.python.benchmarks.interop.PyEuler31.geti:(Lorg/graalvm/polyglot/Value;I)I
istore 5
start local 5 2: iconst_0
istore 6
start local 6 3: goto 14
4: StackMap locals: int int int
StackMap stack:
aload 0
aload 1
iload 2
iload 6
invokevirtual com.oracle.graal.python.benchmarks.interop.PyEuler31.newpat:(Lorg/graalvm/polyglot/Value;II)Lorg/graalvm/polyglot/Value;
astore 7
start local 7 5: aload 0
aload 7
invokevirtual com.oracle.graal.python.benchmarks.interop.PyEuler31.balance:(Lorg/graalvm/polyglot/Value;)I
istore 8
start local 8 6: iload 8
iload 3
if_icmple 8
7: iload 4
ireturn
8: StackMap locals: org.graalvm.polyglot.Value int
StackMap stack:
iload 8
iload 3
if_icmpne 11
9: iinc 4 1
10: goto 13
StackMap locals:
StackMap stack:
11: iload 2
i2l
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.COINS:Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lconst_1
lsub
lcmp
ifge 13
12: iload 4
aload 0
aload 7
iload 2
iconst_1
iadd
iload 3
invokevirtual com.oracle.graal.python.benchmarks.interop.PyEuler31.gen:(Lorg/graalvm/polyglot/Value;II)I
iadd
istore 4
end local 8 end local 7 13: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
iload 3
iload 5
idiv
iconst_1
iadd
if_icmplt 4
end local 6 15: iload 4
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/graal/python/benchmarks/interop/PyEuler31;
0 16 1 pattern Lorg/graalvm/polyglot/Value;
0 16 2 coinnum I
0 16 3 num I
1 16 4 count I
2 16 5 coin I
3 15 6 p I
5 13 7 newpattern Lorg/graalvm/polyglot/Value;
6 13 8 bal I
MethodParameters:
Name Flags
pattern
coinnum
num
private int balance(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lstore 2
start local 2 1: iconst_0
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: long int int
StackMap stack:
iload 4
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.COINS:Lorg/graalvm/polyglot/Value;
iload 5
invokestatic com.oracle.graal.python.benchmarks.interop.PyEuler31.geti:(Lorg/graalvm/polyglot/Value;I)I
aload 1
iload 5
invokestatic com.oracle.graal.python.benchmarks.interop.PyEuler31.geti:(Lorg/graalvm/polyglot/Value;I)I
imul
iadd
istore 4
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
i2l
lload 2
lcmp
iflt 4
end local 5 7: iload 4
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/graal/python/benchmarks/interop/PyEuler31;
0 8 1 pattern Lorg/graalvm/polyglot/Value;
1 8 2 size J
2 8 4 sum I
3 7 5 i I
MethodParameters:
Name Flags
pattern
private org.graalvm.polyglot.Value newpat(org.graalvm.polyglot.Value, int, int);
descriptor: (Lorg/graalvm/polyglot/Value;II)Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.newpat:Lorg/graalvm/polyglot/Value;
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.context:Lorg/graalvm/polyglot/Context;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
aastore
dup
iconst_2
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyEuler31.context:Lorg/graalvm/polyglot/Context;
iload 3
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 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/graal/python/benchmarks/interop/PyEuler31;
0 1 1 t Lorg/graalvm/polyglot/Value;
0 1 2 end I
0 1 3 p I
MethodParameters:
Name Flags
t
end
p
}
SourceFile: "PyEuler31.java"