public class org.graalvm.compiler.replacements.ReplacementsImpl implements org.graalvm.compiler.nodes.spi.Replacements, org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.ReplacementsImpl
super_class: java.lang.Object
{
protected final org.graalvm.compiler.options.OptionValues options;
descriptor: Lorg/graalvm/compiler/options/OptionValues;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
public final org.graalvm.compiler.phases.util.Providers providers;
descriptor: Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection;
descriptor: Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final jdk.vm.ci.code.TargetDescription target;
descriptor: Ljdk/vm/ci/code/TargetDescription;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins graphBuilderPlugins;
descriptor: Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
flags: (0x0002) ACC_PRIVATE
private final org.graalvm.compiler.debug.DebugHandlersFactory debugHandlersFactory;
descriptor: Lorg/graalvm/compiler/debug/DebugHandlersFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final java.util.concurrent.ConcurrentMap<jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.StructuredGraph> graphs;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph;>;
protected final org.graalvm.compiler.bytecode.BytecodeProvider defaultBytecodeProvider;
descriptor: Lorg/graalvm/compiler/bytecode/BytecodeProvider;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private static final int MAX_GRAPH_INLINING_DEPTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
private final org.graalvm.util.EconomicMap<java.lang.String, org.graalvm.compiler.api.replacements.SnippetTemplateCache> snippetTemplateCache;
descriptor: Lorg/graalvm/util/EconomicMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/util/EconomicMap<Ljava/lang/String;Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;>;
private static final org.graalvm.compiler.debug.TimerKey SnippetPreparationTime;
descriptor: Lorg/graalvm/compiler/debug/TimerKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.atomic.AtomicInteger nextDebugContextId;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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=2, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/replacements/ReplacementsImpl;
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.replacements.ReplacementsImpl.$assertionsDisabled:Z
3: ldc "SnippetPreparationTime"
invokestatic org.graalvm.compiler.debug.DebugContext.timer:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/TimerKey;
putstatic org.graalvm.compiler.replacements.ReplacementsImpl.SnippetPreparationTime:Lorg/graalvm/compiler/debug/TimerKey;
4: new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putstatic org.graalvm.compiler.replacements.ReplacementsImpl.nextDebugContextId:Ljava/util/concurrent/atomic/AtomicInteger;
return
LocalVariableTable:
Start End Slot Name Signature
public org.graalvm.compiler.options.OptionValues getOptions();
descriptor: ()Lorg/graalvm/compiler/options/OptionValues;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.options:Lorg/graalvm/compiler/options/OptionValues;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
public void setGraphBuilderPlugins(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphBuilderPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
ifnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.graalvm.compiler.replacements.ReplacementsImpl.graphBuilderPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 3 1 plugins Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
MethodParameters:
Name Flags
plugins
public org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins getGraphBuilderPlugins();
descriptor: ()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphBuilderPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
protected boolean hasGeneratedInvocationPluginAnnotation(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/graalvm/compiler/graph/Node$NodeIntrinsic;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnonnull 1
aload 1
ldc Lorg/graalvm/compiler/api/replacements/Fold;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnonnull 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 2 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
protected boolean hasGenericInvocationPluginAnnotation(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/graalvm/compiler/word/Word$Operation;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 2 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
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=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.getSubstitutionBytecode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/bytecode/Bytecode;
astore 4
start local 4 1: aload 4
ifnull 5
2: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.parsingIntrinsic:()Z
ifne 3
getstatic org.graalvm.compiler.java.BytecodeParserOptions.InlineDuringParsing: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
ifne 3
getstatic org.graalvm.compiler.java.BytecodeParserOptions.InlineIntrinsicsDuringParsing: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 4
3: StackMap locals: org.graalvm.compiler.bytecode.Bytecode
StackMap stack:
aload 4
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 4
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getOrigin:()Lorg/graalvm/compiler/bytecode/BytecodeProvider;
invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.createIntrinsicInlineInfo:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.parsingIntrinsic:()Z
ifeq 8
6: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 7
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getDepth:()I
bipush 100
if_icmplt 7
new java.lang.AssertionError
dup
ldc "inlining limit exceeded"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.defaultBytecodeProvider:Lorg/graalvm/compiler/bytecode/BytecodeProvider;
invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.createIntrinsicInlineInfo:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
8: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 11
aload 2
ldc Lorg/graalvm/compiler/graph/Node$NodeIntrinsic;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 11
new java.lang.AssertionError
dup
ldc "@%s method %s must only be called from within a replacement%n%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
ldc Lorg/graalvm/compiler/graph/Node$NodeIntrinsic;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
9: aload 2
ldc "%h.%n"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
aload 1
aastore
10: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
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 12 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 12 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 12 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 12 3 args [Lorg/graalvm/compiler/nodes/ValueNode;
1 12 4 subst Lorg/graalvm/compiler/bytecode/Bytecode;
MethodParameters:
Name Flags
b
method
args
public void notifyNotInlined(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.Invoke);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/Invoke;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.parsingIntrinsic:()Z
ifeq 10
1: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getIntrinsic:()Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
astore 4
start local 4 2: aload 4
aload 2
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext.isCallToOriginal:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ifne 10
3: aload 0
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.hasGeneratedInvocationPluginAnnotation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ifeq 5
4: new org.graalvm.compiler.debug.GraalError
dup
ldc "%s should have been handled by a %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/GeneratedInvocationPlugin;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
5: StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.hasGenericInvocationPluginAnnotation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ifeq 7
6: new org.graalvm.compiler.debug.GraalError
dup
ldc "%s should have been handled by %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
ldc Lorg/graalvm/compiler/word/WordOperationPlugin;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack:
new org.graalvm.compiler.debug.GraalError
dup
ldc "All non-recursive calls in the intrinsic %s must be inlined or intrinsified: found call to %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
8: aload 4
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext.getIntrinsicMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
aload 2
ldc "%h.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
9: aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 4 10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 11 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 11 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 11 3 invoke Lorg/graalvm/compiler/nodes/Invoke;
2 10 4 intrinsic Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
MethodParameters:
Name Flags
b
method
invoke
public void <init>(org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.debug.DebugHandlersFactory, org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, org.graalvm.compiler.bytecode.BytecodeProvider, jdk.vm.ci.code.TargetDescription);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugHandlersFactory;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Ljdk/vm/ci/code/TargetDescription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, 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
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.replacements.ReplacementsImpl.options:Lorg/graalvm/compiler/options/OptionValues;
2: aload 0
aload 3
aload 0
invokevirtual org.graalvm.compiler.phases.util.Providers.copyWith:(Lorg/graalvm/compiler/nodes/spi/Replacements;)Lorg/graalvm/compiler/phases/util/Providers;
putfield org.graalvm.compiler.replacements.ReplacementsImpl.providers:Lorg/graalvm/compiler/phases/util/Providers;
3: aload 0
aload 4
putfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
4: aload 0
aload 6
putfield org.graalvm.compiler.replacements.ReplacementsImpl.target:Ljdk/vm/ci/code/TargetDescription;
5: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
6: aload 0
getstatic org.graalvm.util.Equivalence.DEFAULT:Lorg/graalvm/util/Equivalence;
invokestatic org.graalvm.util.EconomicMap.create:(Lorg/graalvm/util/Equivalence;)Lorg/graalvm/util/EconomicMap;
putfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetTemplateCache:Lorg/graalvm/util/EconomicMap;
7: aload 0
aload 5
putfield org.graalvm.compiler.replacements.ReplacementsImpl.defaultBytecodeProvider:Lorg/graalvm/compiler/bytecode/BytecodeProvider;
8: aload 0
aload 2
putfield org.graalvm.compiler.replacements.ReplacementsImpl.debugHandlersFactory:Lorg/graalvm/compiler/debug/DebugHandlersFactory;
9: 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 10 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 10 1 options Lorg/graalvm/compiler/options/OptionValues;
0 10 2 debugHandlersFactory Lorg/graalvm/compiler/debug/DebugHandlersFactory;
0 10 3 providers Lorg/graalvm/compiler/phases/util/Providers;
0 10 4 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 10 5 bytecodeProvider Lorg/graalvm/compiler/bytecode/BytecodeProvider;
0 10 6 target Ljdk/vm/ci/code/TargetDescription;
MethodParameters:
Name Flags
options
debugHandlersFactory
providers
snippetReflection
bytecodeProvider
target
public org.graalvm.compiler.nodes.StructuredGraph getSnippet(jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Object[]);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aconst_null
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.getSnippet:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;)Lorg/graalvm/compiler/nodes/StructuredGraph;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 1 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 2 args [Ljava/lang/Object;
MethodParameters:
Name Flags
method
args
protected org.graalvm.compiler.debug.DebugContext openDebugContext(java.lang.String, jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/debug/DebugContext;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.graalvm.compiler.debug.DebugContext.forCurrentThread:()Lorg/graalvm/compiler/debug/DebugContext;
astore 3
start local 3 1: new org.graalvm.compiler.debug.DebugContext$Description
dup
aload 2
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.nextDebugContextId:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.debug.DebugContext$Description.<init>:(Ljava/lang/Object;Ljava/lang/String;)V
astore 4
start local 4 2: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.debugHandlersFactory:Lorg/graalvm/compiler/debug/DebugHandlersFactory;
ifnonnull 3
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
goto 4
StackMap locals: org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.debug.DebugContext$Description
StackMap stack:
3: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.debugHandlersFactory:Lorg/graalvm/compiler/debug/DebugHandlersFactory;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
StackMap locals:
StackMap stack: java.util.List
4: astore 5
start local 5 5: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.options:Lorg/graalvm/compiler/options/OptionValues;
aload 4
aload 3
invokevirtual org.graalvm.compiler.debug.DebugContext.getGlobalMetrics:()Lorg/graalvm/compiler/debug/GlobalMetrics;
getstatic org.graalvm.compiler.debug.DebugContext.DEFAULT_LOG_STREAM:Ljava/io/PrintStream;
aload 5
invokestatic org.graalvm.compiler.debug.DebugContext.create:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext$Description;Lorg/graalvm/compiler/debug/GlobalMetrics;Ljava/io/PrintStream;Ljava/lang/Iterable;)Lorg/graalvm/compiler/debug/DebugContext;
areturn
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/replacements/ReplacementsImpl;
0 6 1 idPrefix Ljava/lang/String;
0 6 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 6 3 outer Lorg/graalvm/compiler/debug/DebugContext;
2 6 4 description Lorg/graalvm/compiler/debug/DebugContext$Description;
5 6 5 factories Ljava/util/List<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
MethodParameters:
Name Flags
idPrefix
method
public org.graalvm.compiler.nodes.StructuredGraph getSnippet(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Object[]);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 1
aload 1
ldc Lorg/graalvm/compiler/api/replacements/Snippet;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnonnull 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Snippet must be annotated with @"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc Lorg/graalvm/compiler/api/replacements/Snippet;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 2
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.hasBytecodes:()Z
ifne 2
new java.lang.AssertionError
dup
ldc "Snippet must not be abstract or native"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.common.GraalOptions.UseSnippetGraphCache:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.options: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 3
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.StructuredGraph
goto 4
StackMap locals:
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
4: astore 4
start local 4 5: aload 4
ifnonnull 30
6: aconst_null
astore 5
aconst_null
astore 6
7: aload 0
ldc "Snippet_"
aload 1
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.openDebugContext:(Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/debug/DebugContext;
astore 7
start local 7 8: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.SnippetPreparationTime:Lorg/graalvm/compiler/debug/TimerKey;
aload 7
invokeinterface org.graalvm.compiler.debug.TimerKey.start:(Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/debug/DebugCloseable;
astore 8
start local 8 9: aload 0
aload 7
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.defaultBytecodeProvider:Lorg/graalvm/compiler/bytecode/BytecodeProvider;
aload 1
aload 3
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.makeGraph:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 9
start local 9 10: ldc "SnippetNodeCount[%#s]"
aload 1
invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/CounterKey;
aload 9
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
aload 9
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
i2l
invokeinterface org.graalvm.compiler.debug.CounterKey.add:(Lorg/graalvm/compiler/debug/DebugContext;J)V
11: getstatic org.graalvm.compiler.core.common.GraalOptions.UseSnippetGraphCache:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.options: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 12
aload 3
ifnull 16
12: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aload 9
13: aload 8
ifnull 14
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
14: aload 7
ifnull 15
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
15: StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
areturn
16: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.freeze:()V
17: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 9
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.StructuredGraph
astore 4
end local 9 19: aload 8
ifnull 22
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 22
StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Object[] org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.debug.DebugCloseable
StackMap stack: java.lang.Throwable
20: astore 5
aload 8
ifnull 21
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 8 StackMap locals:
StackMap stack:
21: aload 5
athrow
StackMap locals:
StackMap stack:
22: aload 7
ifnull 30
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 6
aload 5
ifnonnull 24
aload 6
astore 5
goto 25
StackMap locals:
StackMap stack:
24: aload 5
aload 6
if_acmpeq 25
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 7
ifnull 26
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
end local 7 StackMap locals:
StackMap stack:
26: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 6
aload 5
ifnonnull 28
aload 6
astore 5
goto 29
StackMap locals:
StackMap stack:
28: aload 5
aload 6
if_acmpeq 29
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 5
athrow
30: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 31 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 31 2 recursiveEntry Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 31 3 args [Ljava/lang/Object;
5 31 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
8 26 7 debug Lorg/graalvm/compiler/debug/DebugContext;
9 21 8 a Lorg/graalvm/compiler/debug/DebugCloseable;
10 19 9 newGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
Exception table:
from to target type
9 13 20 any
16 19 20 any
8 14 23 any
16 22 23 any
7 15 27 any
16 27 27 any
MethodParameters:
Name Flags
method
recursiveEntry
args
public void registerSnippet(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 1 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
public boolean hasSubstitution(jdk.vm.ci.meta.ResolvedJavaMethod, int);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphBuilderPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
aload 1
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.lookupInvocation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
astore 3
start local 3 1: aload 3
ifnull 3
aload 3
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.inlineOnly:()Z
ifeq 2
iload 2
iflt 3
StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
StackMap stack:
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 4 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 4 2 invokeBci I
1 4 3 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
MethodParameters:
Name Flags
method
invokeBci
public org.graalvm.compiler.bytecode.BytecodeProvider getDefaultReplacementBytecodeProvider();
descriptor: ()Lorg/graalvm/compiler/bytecode/BytecodeProvider;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.defaultBytecodeProvider:Lorg/graalvm/compiler/bytecode/BytecodeProvider;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
public org.graalvm.compiler.bytecode.Bytecode getSubstitutionBytecode(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/bytecode/Bytecode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphBuilderPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
aload 1
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.lookupInvocation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
astore 2
start local 2 1: aload 2
instanceof org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
ifeq 5
2: aload 2
checkcast org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
astore 3
start local 3 3: aload 3
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getSubstitute:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 4: aload 3
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getBytecodeProvider:()Lorg/graalvm/compiler/bytecode/BytecodeProvider;
aload 4
invokeinterface org.graalvm.compiler.bytecode.BytecodeProvider.getBytecode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/bytecode/Bytecode;
areturn
end local 4 end local 3 5: StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 6 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 6 2 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
3 5 3 msPlugin Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;
4 5 4 substitute Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
public org.graalvm.compiler.nodes.StructuredGraph getSubstitution(jdk.vm.ci.meta.ResolvedJavaMethod, int);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;I)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphBuilderPlugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
aload 1
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.lookupInvocation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
astore 4
start local 4 1: aload 4
ifnull 36
aload 4
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.inlineOnly:()Z
ifeq 2
iload 2
iflt 36
2: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int top org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
astore 5
start local 5 3: aload 4
instanceof org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
ifeq 23
4: aload 4
checkcast org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
astore 6
start local 6 5: aload 6
aload 5
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getSubstitute:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 7
start local 7 6: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 7
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.StructuredGraph
astore 8
start local 8 7: aload 8
ifnonnull 20
8: aconst_null
astore 9
aconst_null
astore 10
9: aload 0
ldc "Substitution_"
aload 1
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.openDebugContext:(Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/debug/DebugContext;
astore 11
start local 11 10: aload 0
aload 11
aload 6
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getBytecodeProvider:()Lorg/graalvm/compiler/bytecode/BytecodeProvider;
aload 7
aconst_null
aload 1
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.makeGraph:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 8
11: aload 8
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.freeze:()V
12: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 7
aload 8
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 7
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.StructuredGraph
astore 8
14: aload 11
ifnull 20
aload 11
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
goto 20
StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int top org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext
StackMap stack: java.lang.Throwable
15: astore 9
aload 11
ifnull 16
aload 11
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
end local 11 StackMap locals:
StackMap stack:
16: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 10
aload 9
ifnonnull 18
aload 10
astore 9
goto 19
StackMap locals:
StackMap stack:
18: aload 9
aload 10
if_acmpeq 19
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
19: aload 9
athrow
20: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 21
aload 8
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isFrozen:()Z
ifne 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals:
StackMap stack:
aload 8
astore 3
end local 8 end local 7 end local 6 start local 3 22: goto 37
end local 3 23: StackMap locals:
StackMap stack:
new org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode
dup
aload 1
invokespecial org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 6
start local 6 24: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
astore 7
start local 7 25: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
astore 8
start local 8 26: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getStampProvider:()Lorg/graalvm/compiler/nodes/spi/StampProvider;
astore 9
start local 9 27: aconst_null
astore 10
aconst_null
astore 11
28: aload 0
ldc "Substitution_"
aload 1
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.openDebugContext:(Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/debug/DebugContext;
astore 12
start local 12 29: new org.graalvm.compiler.replacements.IntrinsicGraphBuilder
dup
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.options:Lorg/graalvm/compiler/options/OptionValues;
aload 12
aload 5
aload 7
aload 8
aload 9
aload 6
iload 2
invokespecial org.graalvm.compiler.replacements.IntrinsicGraphBuilder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/bytecode/Bytecode;I)V
aload 4
invokevirtual org.graalvm.compiler.replacements.IntrinsicGraphBuilder.buildGraph:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 30: aload 12
ifnull 37
aload 12
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
goto 37
end local 3 StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int top org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.bytecode.Bytecode jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.core.common.spi.ConstantFieldProvider org.graalvm.compiler.nodes.spi.StampProvider java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext
StackMap stack: java.lang.Throwable
31: astore 10
aload 12
ifnull 32
aload 12
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
end local 12 StackMap locals:
StackMap stack:
32: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 11
aload 10
ifnonnull 34
aload 11
astore 10
goto 35
StackMap locals:
StackMap stack:
34: aload 10
aload 11
if_acmpeq 35
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
35: aload 10
athrow
end local 9 end local 8 end local 7 end local 6 end local 5 36: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int top org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
StackMap stack:
aconst_null
astore 3
start local 3 37: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 38 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 38 2 invokeBci I
22 23 3 result Lorg/graalvm/compiler/nodes/StructuredGraph;
30 31 3 result Lorg/graalvm/compiler/nodes/StructuredGraph;
37 38 3 result Lorg/graalvm/compiler/nodes/StructuredGraph;
1 38 4 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
3 36 5 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
5 22 6 msPlugin Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;
6 22 7 substitute Ljdk/vm/ci/meta/ResolvedJavaMethod;
7 22 8 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
10 16 11 debug Lorg/graalvm/compiler/debug/DebugContext;
24 36 6 code Lorg/graalvm/compiler/bytecode/Bytecode;
25 36 7 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
26 36 8 constantFieldProvider Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
27 36 9 stampProvider Lorg/graalvm/compiler/nodes/spi/StampProvider;
29 32 12 debug Lorg/graalvm/compiler/debug/DebugContext;
Exception table:
from to target type
10 14 15 any
9 17 17 any
29 30 31 any
28 33 33 any
MethodParameters:
Name Flags
method
invokeBci
public org.graalvm.compiler.nodes.StructuredGraph makeGraph(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.bytecode.BytecodeProvider, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Object[], jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 3
aload 5
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.createGraphMaker:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/replacements/ReplacementsImpl$GraphMaker;
aload 1
aload 2
aload 4
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker.makeGraph:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeProvider;[Ljava/lang/Object;)Lorg/graalvm/compiler/nodes/StructuredGraph;
areturn
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 1 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 1 1 debug Lorg/graalvm/compiler/debug/DebugContext;
0 1 2 bytecodeProvider Lorg/graalvm/compiler/bytecode/BytecodeProvider;
0 1 3 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 4 args [Ljava/lang/Object;
0 1 5 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
debug
bytecodeProvider
method
args
original
protected org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker createGraphMaker(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/replacements/ReplacementsImpl$GraphMaker;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker
dup
aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker.<init>:(Lorg/graalvm/compiler/replacements/ReplacementsImpl;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 1 1 substitute Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 2 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
substitute
original
public void registerSnippetTemplateCache(org.graalvm.compiler.api.replacements.SnippetTemplateCache);
descriptor: (Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetTemplateCache:Lorg/graalvm/util/EconomicMap;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface org.graalvm.util.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetTemplateCache:Lorg/graalvm/util/EconomicMap;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 1
invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 3 1 templates Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;
MethodParameters:
Name Flags
templates
public <T extends org.graalvm.compiler.api.replacements.SnippetTemplateCache> T getSnippetTemplateCache(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetTemplateCache:Lorg/graalvm/util/EconomicMap;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface org.graalvm.util.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.api.replacements.SnippetTemplateCache
astore 2
start local 2 1: aload 1
aload 2
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.api.replacements.SnippetTemplateCache
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 2 1 templatesClass Ljava/lang/Class<TT;>;
1 2 2 ret Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;
Signature: <T::Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;>(Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
templatesClass
}
SourceFile: "ReplacementsImpl.java"
NestMembers:
org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker
InnerClasses:
public Description = org.graalvm.compiler.debug.DebugContext$Description of org.graalvm.compiler.debug.DebugContext
public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
public final InlineInfo = org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo of org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin
public GraphMaker = org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker of org.graalvm.compiler.replacements.ReplacementsImpl
public abstract Operation = org.graalvm.compiler.word.Word$Operation of org.graalvm.compiler.word.Word