abstract class org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$PolymorphicAndMegamorpic extends org.graalvm.compiler.truffle.test.AbstractSplittingStrategyTest$SplittingTestNode
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$PolymorphicAndMegamorpic
  super_class: org.graalvm.compiler.truffle.test.AbstractSplittingStrategyTest$SplittingTestNode
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$PolymorphicAndMegamorpic this
         0: .line 454
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.test.AbstractSplittingStrategyTest$SplittingTestNode.<init>:()V
            return
        end local 0 // org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$PolymorphicAndMegamorpic this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest$PolymorphicAndMegamorpic;

  protected static java.lang.Object doCached(int, int);
    descriptor: (II)Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int val
        start local 1 // int cachedVal
         0: .line 458
            iload 0 /* val */
            iload 1 /* cachedVal */
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 1 // int cachedVal
        end local 0 // int val
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0        val  I
            0    1     1  cachedVal  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "2", guards = {"val == cachedVal", "val != 0"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached(value = "val")
    MethodParameters:
           Name  Flags
      val        
      cachedVal  

  protected static java.lang.Object doIndirect(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int val
         0: .line 464
            iload 0 /* val */
            iload 0 /* val */
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 0 // int val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   val  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(replaces = {"doCached"})
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.ReportPolymorphism$Megamorphic()
    MethodParameters:
      Name  Flags
      val   
}
SourceFile: "NodeSplittingStrategyTest.java"
NestHost: org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
InnerClasses:
  public abstract Megamorphic = com.oracle.truffle.api.dsl.ReportPolymorphism$Megamorphic of com.oracle.truffle.api.dsl.ReportPolymorphism
  abstract SplittingTestNode = org.graalvm.compiler.truffle.test.AbstractSplittingStrategyTest$SplittingTestNode of org.graalvm.compiler.truffle.test.AbstractSplittingStrategyTest
  abstract PolymorphicAndMegamorpic = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$PolymorphicAndMegamorpic of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.NodeChild()