final class org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins extends org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins
super_class: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
{
private final org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider graalRuntime;
descriptor: Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config;
descriptor: Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.function.Predicate<jdk.vm.ci.meta.ResolvedJavaType> intrinsificationPredicate;
descriptor: Ljava/util/function/Predicate;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaType;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/hotspot/meta/HotSpotInvocationPlugins;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, org.graalvm.compiler.phases.tiers.CompilerConfiguration);
descriptor: (Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Lorg/graalvm/compiler/phases/tiers/CompilerConfiguration;)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.graalRuntime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
2: aload 0
aload 2
putfield org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
3: aload 0
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getIntrinsificationTrustPredicate:([Ljava/lang/Class;)Ljava/util/function/Predicate;
putfield org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.intrinsificationPredicate:Ljava/util/function/Predicate;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/hotspot/meta/HotSpotInvocationPlugins;
0 5 1 graalRuntime Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
0 5 2 config Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
0 5 3 compilerConfiguration Lorg/graalvm/compiler/phases/tiers/CompilerConfiguration;
MethodParameters:
Name Flags
graalRuntime
config
compilerConfiguration
protected void register(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin, boolean, boolean, java.lang.reflect.Type, java.lang.String, java.lang.reflect.Type[]);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;ZZLjava/lang/reflect/Type;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.usePopCountInstruction:Z
ifne 4
1: aload 5
ldc "bitCount"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
2: getstatic org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.$assertionsDisabled:Z
ifne 3
aload 4
ldc Ljava/lang/Integer;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 3
aload 4
ldc Ljava/lang/Long;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
return
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
aload 4
aload 5
aload 6
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.register:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;ZZLjava/lang/reflect/Type;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
5: return
end local 6 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 6 0 this Lorg/graalvm/compiler/hotspot/meta/HotSpotInvocationPlugins;
0 6 1 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
0 6 2 isOptional Z
0 6 3 allowOverwrite Z
0 6 4 declaringClass Ljava/lang/reflect/Type;
0 6 5 name Ljava/lang/String;
0 6 6 argumentTypes [Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
plugin
isOptional
allowOverwrite
declaringClass
name
argumentTypes
public void checkNewNodes(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin, org.graalvm.compiler.graph.iterators.NodeIterable<org.graalvm.compiler.graph.Node>);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;Lorg/graalvm/compiler/graph/iterators/NodeIterable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 4
StackMap locals: org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin org.graalvm.compiler.graph.iterators.NodeIterable top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 4
start local 4 2: aload 4
instanceof org.graalvm.compiler.replacements.nodes.MacroNode
ifeq 4
3: getstatic org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.$assertionsDisabled:Z
ifne 4
aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.inlineOnly:()Z
ifne 4
new java.lang.AssertionError
dup
ldc "plugin that creates a %s (%s) must return true for inlineOnly(): %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
ldc Lorg/graalvm/compiler/replacements/nodes/MacroNode;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: getstatic org.graalvm.compiler.core.common.GraalOptions.ImmutableCode:Lorg/graalvm/compiler/options/OptionKey;
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 15
6: aload 3
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals:
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 4
start local 4 8: aload 4
invokevirtual org.graalvm.compiler.graph.Node.hasUsages:()Z
ifeq 14
aload 4
instanceof org.graalvm.compiler.nodes.ConstantNode
ifeq 14
9: aload 4
checkcast org.graalvm.compiler.nodes.ConstantNode
astore 6
start local 6 10: aload 6
invokevirtual org.graalvm.compiler.nodes.ConstantNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 14
aload 6
invokestatic org.graalvm.compiler.hotspot.phases.AheadOfTimeVerificationPhase.isIllegalObjectConstant:(Lorg/graalvm/compiler/nodes/ConstantNode;)Z
ifeq 14
11: aload 6
invokestatic org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.isClass:(Lorg/graalvm/compiler/nodes/ConstantNode;)Z
ifne 14
12: aload 4
invokevirtual org.graalvm.compiler.graph.Node.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokedynamic apply()Lorg/graalvm/compiler/graph/iterators/NodePredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/graph/Node;)Z
org/graalvm/compiler/hotspot/meta/HotSpotInvocationPlugins.lambda$0(Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/graph/iterators/FilteredNodeIterable;
invokevirtual org.graalvm.compiler.graph.iterators.FilteredNodeIterable.isNotEmpty:()Z
ifeq 14
13: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "illegal constant node in AOT: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 6 end local 4 14: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
15: StackMap locals: org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin org.graalvm.compiler.graph.iterators.NodeIterable
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.checkNewNodes:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;Lorg/graalvm/compiler/graph/iterators/NodeIterable;)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/hotspot/meta/HotSpotInvocationPlugins;
0 17 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 17 2 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
0 17 3 newNodes Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/graph/Node;>;
2 4 4 node Lorg/graalvm/compiler/graph/Node;
8 14 4 node Lorg/graalvm/compiler/graph/Node;
10 14 6 c Lorg/graalvm/compiler/nodes/ConstantNode;
Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/graph/Node;>;)V
MethodParameters:
Name Flags
b
plugin
newNodes
private static boolean isClass(org.graalvm.compiler.nodes.ConstantNode);
descriptor: (Lorg/graalvm/compiler/nodes/ConstantNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 1
start local 1 1: aload 1
ifnull 2
ldc "Ljava/lang/Class;"
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
iconst_1
ireturn
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node Lorg/graalvm/compiler/nodes/ConstantNode;
1 3 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
node
public boolean canBeIntrinsified(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.intrinsificationPredicate:Ljava/util/function/Predicate;
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifne 4
1: aload 0
getfield org.graalvm.compiler.hotspot.meta.HotSpotInvocationPlugins.graalRuntime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.isBootstrapping:()Z
ifeq 3
2: new java.lang.StringBuilder
dup
ldc "Class declaring a method for which a Graal intrinsic is available should be trusted for intrinsification: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/hotspot/meta/HotSpotInvocationPlugins;
0 5 1 declaringClass Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
declaringClass
private static boolean lambda$0(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.nodes.FrameState
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.graph.Node.hasUsages:()Z
ifne 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 n Lorg/graalvm/compiler/graph/Node;
}
SourceFile: "HotSpotInvocationPlugins.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles