final class org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin implements org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin
  super_class: java.lang.Object
{
  private final org.graalvm.compiler.truffle.compiler.PartialEvaluator partialEvaluator;
    descriptor: Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.ReplacementsImpl replacements;
    descriptor: Lorg/graalvm/compiler/replacements/ReplacementsImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins;
    descriptor: Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin loopExplosionPlugin;
    descriptor: Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(org.graalvm.compiler.truffle.compiler.PartialEvaluator, org.graalvm.compiler.replacements.ReplacementsImpl, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;Lorg/graalvm/compiler/replacements/ReplacementsImpl;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin this
        start local 1 // org.graalvm.compiler.truffle.compiler.PartialEvaluator partialEvaluator
        start local 2 // org.graalvm.compiler.replacements.ReplacementsImpl replacements
        start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
        start local 4 // org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin loopExplosionPlugin
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* partialEvaluator */
            putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.partialEvaluator:Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
         2: .line 47
            aload 0 /* this */
            aload 2 /* replacements */
            putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.replacements:Lorg/graalvm/compiler/replacements/ReplacementsImpl;
         3: .line 48
            aload 0 /* this */
            aload 3 /* invocationPlugins */
            putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.invocationPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
         4: .line 49
            aload 0 /* this */
            aload 4 /* loopExplosionPlugin */
            putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.loopExplosionPlugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin;
         5: .line 50
            return
        end local 4 // org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin loopExplosionPlugin
        end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
        end local 2 // org.graalvm.compiler.replacements.ReplacementsImpl replacements
        end local 1 // org.graalvm.compiler.truffle.compiler.PartialEvaluator partialEvaluator
        end local 0 // org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lorg/graalvm/compiler/truffle/compiler/ParsingInlineInvokePlugin;
            0    6     1     partialEvaluator  Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            0    6     2         replacements  Lorg/graalvm/compiler/replacements/ReplacementsImpl;
            0    6     3    invocationPlugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    6     4  loopExplosionPlugin  Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin;
    MethodParameters:
                     Name  Flags
      partialEvaluator     
      replacements         
      invocationPlugins    
      loopExplosionPlugin  

  private boolean hasMethodHandleArgument(org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: ([Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin this
        start local 1 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 53
            aload 1 /* arguments */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin org.graalvm.compiler.nodes.ValueNode[] top int int org.graalvm.compiler.nodes.ValueNode[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* argument */
        start local 2 // org.graalvm.compiler.nodes.ValueNode argument
         2: .line 54
            aload 2 /* argument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 6
         3: .line 55
            aload 2 /* argument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            astore 6 /* constant */
        start local 6 // jdk.vm.ci.meta.JavaConstant constant
         4: .line 56
            aload 6 /* constant */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 6
            aload 6 /* constant */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNonNull:()Z
            ifeq 6
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.partialEvaluator:Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            getfield org.graalvm.compiler.truffle.compiler.PartialEvaluator.knownTruffleTypes:Lorg/graalvm/compiler/truffle/compiler/substitutions/KnownTruffleTypes;
            getfield org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes.classMethodHandle:Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 6 /* constant */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInstance:(Ljdk/vm/ci/meta/JavaConstant;)Z
            ifeq 6
         5: .line 57
            iconst_1
            ireturn
        end local 6 // jdk.vm.ci.meta.JavaConstant constant
        end local 2 // org.graalvm.compiler.nodes.ValueNode argument
         6: .line 53
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 1
         8: .line 61
            iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 0 // org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/graalvm/compiler/truffle/compiler/ParsingInlineInvokePlugin;
            0    9     1  arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            2    6     2   argument  Lorg/graalvm/compiler/nodes/ValueNode;
            4    6     6   constant  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
           Name  Flags
      arguments  

  public org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo shouldInlineInvoke(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin this
        start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext builder
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod original
        start local 3 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 66
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.invocationPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            aload 2 /* original */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.lookupInvocation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            ifnonnull 1
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.replacements:Lorg/graalvm/compiler/replacements/ReplacementsImpl;
            aload 2 /* original */
            invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.hasSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 2
         1: .line 73
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
            areturn
         2: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.loopExplosionPlugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin;
            aload 2 /* original */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin.loopExplosionKind:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin$LoopExplosionKind;
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin$LoopExplosionKind.NONE:Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin$LoopExplosionKind;
            if_acmpeq 4
         3: .line 75
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
            areturn
         4: .line 78
      StackMap locals:
      StackMap stack:
            aload 2 /* original */
            invokestatic org.graalvm.compiler.truffle.compiler.PartialEvaluator.asInlineInfo:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
            astore 4 /* inlineInfo */
        start local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo inlineInfo
         5: .line 79
            aload 4 /* inlineInfo */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.allowsInlining:()Z
            ifne 7
         6: .line 80
            aload 4 /* inlineInfo */
            areturn
         7: .line 82
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.partialEvaluator:Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getNeverInlineMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 12
      StackMap locals: org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
      StackMap stack:
         8: aload 8
            iload 6
            aaload
            astore 5 /* neverInlineMethod */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaMethod neverInlineMethod
         9: .line 83
            aload 2 /* original */
            aload 5 /* neverInlineMethod */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 84
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
            areturn
        end local 5 // jdk.vm.ci.meta.ResolvedJavaMethod neverInlineMethod
        11: .line 82
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        12: iload 6
            iload 7
            if_icmplt 8
        13: .line 87
            aload 0 /* this */
            aload 3 /* arguments */
            invokevirtual org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.hasMethodHandleArgument:([Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifeq 15
        14: .line 92
            aload 4 /* inlineInfo */
            areturn
        15: .line 94
      StackMap locals: org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo
      StackMap stack:
            aconst_null
            areturn
        end local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo inlineInfo
        end local 3 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext builder
        end local 0 // org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lorg/graalvm/compiler/truffle/compiler/ParsingInlineInvokePlugin;
            0   16     1            builder  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0   16     2           original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   16     3          arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            5   16     4         inlineInfo  Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
            9   11     5  neverInlineMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
           Name  Flags
      builder    
      original   
      arguments  
}
SourceFile: "ParsingInlineInvokePlugin.java"
InnerClasses:
  public final InlineInfo = org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo of org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin
  public final LoopExplosionKind = org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin$LoopExplosionKind of org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin