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 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.partialEvaluator:Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
2: aload 0
aload 2
putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.replacements:Lorg/graalvm/compiler/replacements/ReplacementsImpl;
3: aload 0
aload 3
putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.invocationPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
4: aload 0
aload 4
putfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.loopExplosionPlugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 1
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
start local 2 2: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
3: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 6
start local 6 4: aload 6
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
invokeinterface jdk.vm.ci.meta.JavaConstant.isNonNull:()Z
ifeq 6
aload 0
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
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInstance:(Ljdk/vm/ci/meta/JavaConstant;)Z
ifeq 6
5: iconst_1
ireturn
end local 6 end local 2 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 1
8: iconst_0
ireturn
end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.invocationPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
aload 2
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.lookupInvocation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
ifnonnull 1
aload 0
getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.replacements:Lorg/graalvm/compiler/replacements/ReplacementsImpl;
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.hasSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ifeq 2
1: 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: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.loopExplosionPlugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin;
aload 2
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: getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokestatic org.graalvm.compiler.truffle.compiler.PartialEvaluator.asInlineInfo:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
astore 4
start local 4 5: aload 4
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.allowsInlining:()Z
ifne 7
6: aload 4
areturn
7: StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo
StackMap stack:
aload 0
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
start local 5 9: aload 2
aload 5
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 11
10: getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
end local 5 11: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
iload 7
if_icmplt 8
13: aload 0
aload 3
invokevirtual org.graalvm.compiler.truffle.compiler.ParsingInlineInvokePlugin.hasMethodHandleArgument:([Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 15
14: aload 4
areturn
15: 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 end local 3 end local 2 end local 1 end local 0 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