public class com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark extends com.oracle.truffle.api.benchmark.TruffleBenchmark
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  super_class: com.oracle.truffle.api.benchmark.TruffleBenchmark
{
  private static final int NODES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000

  private static com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$TestRootNode root;
    descriptor: Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$TestRootNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 67
            new com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$TestRootNode
            dup
            invokespecial com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$TestRootNode.<init>:()V
            putstatic com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark.root:Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$TestRootNode;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
         0: .line 64
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.benchmark.TruffleBenchmark.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark;

  private static <T extends com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$AbstractNode> T createNode(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$AbstractNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.function.Supplier nodeFactory
         0: .line 70
            aload 0 /* nodeFactory */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$AbstractNode
            astore 1 /* node */
        start local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$AbstractNode node
         1: .line 73
            getstatic com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark.root:Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$TestRootNode;
            aload 1 /* node */
            putfield com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$TestRootNode.child:Lcom/oracle/truffle/api/nodes/Node;
         2: .line 74
            getstatic com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark.root:Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$TestRootNode;
            invokevirtual com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$TestRootNode.adoptChildren:()V
         3: .line 75
            aload 1 /* node */
            areturn
        end local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$AbstractNode node
        end local 0 // java.util.function.Supplier nodeFactory
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  nodeFactory  Ljava/util/function/Supplier<TT;>;
            1    4     1         node  TT;
    Signature: <T:Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$AbstractNode;>(Ljava/util/function/Supplier<TT;>;)TT;
    MethodParameters:
             Name  Flags
      nodeFactory  

  public void setupInterpreterProfile();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
         0: .line 113
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tSimpleDSLNodeGen cannot be resolved\n\tSimpleDSLNodeGen cannot be resolved\n\tCachedDSLNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark;
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Setup()

  public int simpleFirstIteration(com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleFirstIterationState);
    descriptor: (Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$SimpleFirstIterationState;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
        start local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleFirstIterationState state
         0: .line 220
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 2 /* v */
        start local 2 // java.lang.Integer v
         1: .line 221
            iconst_0
            istore 3 /* sum */
        start local 3 // int sum
         2: .line 222
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 223
      StackMap locals: java.lang.Integer int int
      StackMap stack:
            iload 3 /* sum */
            aload 1 /* state */
            getfield com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleFirstIterationState.nodes:[Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$SimpleDSLNode;
            iload 4 /* i */
            aaload
            aload 2 /* v */
            invokevirtual com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleDSLNode.execute:(Ljava/lang/Object;)I
            iadd
            istore 3 /* sum */
         5: .line 222
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            sipush 10000
            if_icmplt 4
        end local 4 // int i
         7: .line 225
            iload 3 /* sum */
            ireturn
        end local 3 // int sum
        end local 2 // java.lang.Integer v
        end local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleFirstIterationState state
        end local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark;
            0    8     1  state  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$SimpleFirstIterationState;
            1    8     2      v  Ljava/lang/Integer;
            2    8     3    sum  I
            3    7     4      i  I
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Benchmark()
      org.openjdk.jmh.annotations.OperationsPerInvocation(value = 10000)
    MethodParameters:
       Name  Flags
      state  

  public int simpleSecondIteration(com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleSecondIterationState);
    descriptor: (Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$SimpleSecondIterationState;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
        start local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleSecondIterationState state
         0: .line 231
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 2 /* v */
        start local 2 // java.lang.Integer v
         1: .line 232
            iconst_0
            istore 3 /* sum */
        start local 3 // int sum
         2: .line 233
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 234
      StackMap locals: java.lang.Integer int int
      StackMap stack:
            iload 3 /* sum */
            aload 1 /* state */
            getfield com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleSecondIterationState.nodes:[Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$SimpleDSLNode;
            iload 4 /* i */
            aaload
            aload 2 /* v */
            invokevirtual com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleDSLNode.execute:(Ljava/lang/Object;)I
            iadd
            istore 3 /* sum */
         5: .line 233
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            sipush 10000
            if_icmplt 4
        end local 4 // int i
         7: .line 236
            iload 3 /* sum */
            ireturn
        end local 3 // int sum
        end local 2 // java.lang.Integer v
        end local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleSecondIterationState state
        end local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark;
            0    8     1  state  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$SimpleSecondIterationState;
            1    8     2      v  Ljava/lang/Integer;
            2    8     3    sum  I
            3    7     4      i  I
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Benchmark()
      org.openjdk.jmh.annotations.OperationsPerInvocation(value = 10000)
    MethodParameters:
       Name  Flags
      state  

  public int cachedFirstIteration(com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedFirstIterationState);
    descriptor: (Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$CachedFirstIterationState;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
        start local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedFirstIterationState state
         0: .line 242
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 2 /* v */
        start local 2 // java.lang.Integer v
         1: .line 243
            iconst_0
            istore 3 /* sum */
        start local 3 // int sum
         2: .line 244
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 245
      StackMap locals: java.lang.Integer int int
      StackMap stack:
            iload 3 /* sum */
            aload 1 /* state */
            getfield com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedFirstIterationState.nodes:[Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$CachedDSLNode;
            iload 4 /* i */
            aaload
            aload 2 /* v */
            invokevirtual com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedDSLNode.execute:(Ljava/lang/Object;)I
            iadd
            istore 3 /* sum */
         5: .line 244
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            sipush 10000
            if_icmplt 4
        end local 4 // int i
         7: .line 247
            iload 3 /* sum */
            ireturn
        end local 3 // int sum
        end local 2 // java.lang.Integer v
        end local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedFirstIterationState state
        end local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark;
            0    8     1  state  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$CachedFirstIterationState;
            1    8     2      v  Ljava/lang/Integer;
            2    8     3    sum  I
            3    7     4      i  I
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Benchmark()
      org.openjdk.jmh.annotations.OperationsPerInvocation(value = 10000)
    MethodParameters:
       Name  Flags
      state  

  public int cachedSecondIteration(com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedSecondIterationState);
    descriptor: (Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$CachedSecondIterationState;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
        start local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedSecondIterationState state
         0: .line 253
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 2 /* v */
        start local 2 // java.lang.Integer v
         1: .line 254
            iconst_0
            istore 3 /* sum */
        start local 3 // int sum
         2: .line 255
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 256
      StackMap locals: java.lang.Integer int int
      StackMap stack:
            iload 3 /* sum */
            aload 1 /* state */
            getfield com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedSecondIterationState.nodes:[Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$CachedDSLNode;
            iload 4 /* i */
            aaload
            aload 2 /* v */
            invokevirtual com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedDSLNode.execute:(Ljava/lang/Object;)I
            iadd
            istore 3 /* sum */
         5: .line 255
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            sipush 10000
            if_icmplt 4
        end local 4 // int i
         7: .line 258
            iload 3 /* sum */
            ireturn
        end local 3 // int sum
        end local 2 // java.lang.Integer v
        end local 1 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedSecondIterationState state
        end local 0 // com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark;
            0    8     1  state  Lcom/oracle/truffle/api/benchmark/DSLInterpreterBenchmark$CachedSecondIterationState;
            1    8     2      v  Ljava/lang/Integer;
            2    8     3    sum  I
            3    7     4      i  I
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.Benchmark()
      org.openjdk.jmh.annotations.OperationsPerInvocation(value = 10000)
    MethodParameters:
       Name  Flags
      state  
}
SourceFile: "DSLInterpreterBenchmark.java"
NestMembers:
  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$AbstractNode  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedDSLNode  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedFirstIterationState  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedSecondIterationState  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleDSLNode  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleFirstIterationState  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleSecondIterationState  com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$TestRootNode
InnerClasses:
  abstract AbstractNode = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$AbstractNode of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  abstract CachedDSLNode = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedDSLNode of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  public CachedFirstIterationState = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedFirstIterationState of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  public CachedSecondIterationState = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$CachedSecondIterationState of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  abstract SimpleDSLNode = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleDSLNode of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  public SimpleFirstIterationState = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleFirstIterationState of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  public SimpleSecondIterationState = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$SimpleSecondIterationState of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
  final TestRootNode = com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark$TestRootNode of com.oracle.truffle.api.benchmark.DSLInterpreterBenchmark
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.State(value = org.openjdk.jmh.annotations.Scope.Thread:Lorg/openjdk/jmh/annotations/Scope;)
      org.openjdk.jmh.annotations.Fork(value = 1)