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
{
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
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 bytecodeProvider;
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 java.util.Map<java.lang.String, org.graalvm.compiler.api.replacements.SnippetTemplateCache> snippetTemplateCache;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/compiler/api/replacements/SnippetTemplateCache;>;
private static final org.graalvm.compiler.debug.DebugTimer SnippetPreparationTime;
descriptor: Lorg/graalvm/compiler/debug/DebugTimer;
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=1, 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.Debug.timer:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/DebugTimer;
putstatic org.graalvm.compiler.replacements.ReplacementsImpl.SnippetPreparationTime:Lorg/graalvm/compiler/debug/DebugTimer;
return
LocalVariableTable:
Start End Slot Name Signature
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.getSubstitutionMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
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/StableOptionValue;
invokevirtual org.graalvm.compiler.options.StableOptionValue.getValue:()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/StableOptionValue;
invokevirtual org.graalvm.compiler.options.StableOptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 4
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 4
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.bytecodeProvider: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 16
6: aload 0
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.hasGeneratedInvocationPluginAnnotation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ifeq 8
7: 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
8: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.hasGenericInvocationPluginAnnotation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ifeq 10
9: 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/replacements/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
10: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 11
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getDepth:()I
bipush 100
if_icmplt 11
new java.lang.AssertionError
dup
ldc "inlining limit exceeded"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
ldc "$jacoco"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 15
12: new org.graalvm.compiler.debug.GraalError
dup
new java.lang.StringBuilder
dup
ldc "Found call to JaCoCo instrumentation method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ". Placing \"//JaCoCo Exclude\" anywhere in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getSourceFileName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " should fix this."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.bytecodeProvider: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
16: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 19
aload 2
ldc Lorg/graalvm/compiler/graph/Node$NodeIntrinsic;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 19
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
17: 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
18: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
19: 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 20 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 20 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 20 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 20 3 args [Lorg/graalvm/compiler/nodes/ValueNode;
1 20 4 subst Ljdk/vm/ci/meta/ResolvedJavaMethod;
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 6
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 6
3: 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
4: 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;
5: aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 4 6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 7 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 7 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 7 3 invoke Lorg/graalvm/compiler/nodes/Invoke;
2 6 4 intrinsic Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
MethodParameters:
Name Flags
b
method
invoke
public void <init>(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/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=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
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;
2: aload 0
aload 2
putfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
3: aload 0
aload 4
putfield org.graalvm.compiler.replacements.ReplacementsImpl.target:Ljdk/vm/ci/code/TargetDescription;
4: 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;
5: aload 0
invokestatic org.graalvm.compiler.core.common.CollectionsFactory.newMap:()Ljava/util/HashMap;
putfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetTemplateCache:Ljava/util/Map;
6: aload 0
aload 3
putfield org.graalvm.compiler.replacements.ReplacementsImpl.bytecodeProvider:Lorg/graalvm/compiler/bytecode/BytecodeProvider;
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 8 1 providers Lorg/graalvm/compiler/phases/util/Providers;
0 8 2 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 8 3 bytecodeProvider Lorg/graalvm/compiler/bytecode/BytecodeProvider;
0 8 4 target Ljdk/vm/ci/code/TargetDescription;
MethodParameters:
Name Flags
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
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=5, locals=9, 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/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()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 22
6: aconst_null
astore 5
aconst_null
astore 6
7: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.SnippetPreparationTime:Lorg/graalvm/compiler/debug/DebugTimer;
invokeinterface org.graalvm.compiler.debug.DebugTimer.start:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 7
start local 7 8: aload 0
aload 1
aload 3
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.makeGraph:(Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 8
start local 8 9: ldc "SnippetNodeCount[%#s]"
aload 1
invokestatic org.graalvm.compiler.debug.Debug.counter:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugCounter;
aload 8
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
i2l
invokeinterface org.graalvm.compiler.debug.DebugCounter.add:(J)V
10: getstatic org.graalvm.compiler.core.common.GraalOptions.UseSnippetGraphCache:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 11
aload 3
ifnull 14
11: 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.DebugCloseable org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aload 8
12: aload 7
ifnull 13
aload 7
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
13: StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
areturn
14: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 8
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: 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 8 16: aload 7
ifnull 22
aload 7
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.DebugCloseable
StackMap stack: java.lang.Throwable
17: astore 5
aload 7
ifnull 18
aload 7
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 7 StackMap locals:
StackMap stack:
18: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 6
aload 5
ifnonnull 20
aload 6
astore 5
goto 21
StackMap locals:
StackMap stack:
20: aload 5
aload 6
if_acmpeq 21
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
21: aload 5
athrow
22: 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 23 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 23 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 23 2 recursiveEntry Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 23 3 args [Ljava/lang/Object;
5 23 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
8 18 7 a Lorg/graalvm/compiler/debug/DebugCloseable;
9 16 8 newGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
Exception table:
from to target type
8 12 17 any
14 16 17 any
7 13 19 any
14 19 19 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 getReplacementBytecodeProvider();
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.bytecodeProvider: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 jdk.vm.ci.meta.ResolvedJavaMethod getSubstitutionMethod(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, 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 4
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;
areturn
end local 3 4: 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 5 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 5 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 5 2 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
3 4 3 msPlugin Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;
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=8, locals=10, 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 21
aload 4
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.inlineOnly:()Z
ifeq 2
iload 2
iflt 21
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 15
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 12
8: aload 0
aload 7
aconst_null
aload 1
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.makeGraph:(Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 8
9: aload 8
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.freeze:()V
10: 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
11: 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
12: 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
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 13
aload 8
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isFrozen:()Z
ifne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
aload 8
astore 3
end local 8 end local 7 end local 6 start local 3 14: goto 22
end local 3 15: 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 16: 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 17: 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 18: 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 19: new org.graalvm.compiler.replacements.IntrinsicGraphBuilder
dup
aload 5
aload 7
aload 8
aload 9
aload 6
iload 2
invokespecial org.graalvm.compiler.replacements.IntrinsicGraphBuilder.<init>:(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
end local 9 end local 8 end local 7 end local 6 end local 5 start local 3 20: goto 22
end local 3 21: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 22: 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 23 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 23 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 23 2 invokeBci I
14 15 3 result Lorg/graalvm/compiler/nodes/StructuredGraph;
20 21 3 result Lorg/graalvm/compiler/nodes/StructuredGraph;
22 23 3 result Lorg/graalvm/compiler/nodes/StructuredGraph;
1 23 4 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
3 20 5 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
5 14 6 msPlugin Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;
6 14 7 substitute Ljdk/vm/ci/meta/ResolvedJavaMethod;
7 14 8 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
16 20 6 code Lorg/graalvm/compiler/bytecode/ResolvedJavaMethodBytecode;
17 20 7 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
18 20 8 constantFieldProvider Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
19 20 9 stampProvider Lorg/graalvm/compiler/nodes/spi/StampProvider;
MethodParameters:
Name Flags
method
invokeBci
public org.graalvm.compiler.nodes.StructuredGraph makeGraph(jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Object[], jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
aconst_null
astore 5
1: getstatic org.graalvm.compiler.core.common.GraalOptions.DeoptALot:Lorg/graalvm/compiler/options/OptionValue;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.graalvm.compiler.options.OptionValue.override:(Lorg/graalvm/compiler/options/OptionValue;Ljava/lang/Object;)Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
astore 6
start local 6 2: aload 0
aload 1
aload 3
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.createGraphMaker:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/replacements/ReplacementsImpl$GraphMaker;
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker.makeGraph:([Ljava/lang/Object;)Lorg/graalvm/compiler/nodes/StructuredGraph;
3: aload 6
ifnull 4
aload 6
invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.close:()V
4: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Object[] jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Throwable java.lang.Throwable org.graalvm.compiler.options.OptionValue$OverrideScope
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
areturn
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 4
6: aload 6
ifnull 7
aload 6
invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.close:()V
end local 6 StackMap locals:
StackMap stack:
7: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 5
aload 4
ifnonnull 9
aload 5
astore 4
goto 10
StackMap locals:
StackMap stack:
9: aload 4
aload 5
if_acmpeq 10
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 4
athrow
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 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 11 2 args [Ljava/lang/Object;
0 11 3 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
2 7 6 s Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
Exception table:
from to target type
2 3 5 any
1 4 8 any
5 8 8 any
MethodParameters:
Name Flags
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:Ljava/util/Map;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface java.util.Map.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:Ljava/util/Map;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 1
invokeinterface java.util.Map.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:Ljava/util/Map;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface java.util.Map.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 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 abstract OverrideScope = org.graalvm.compiler.options.OptionValue$OverrideScope of org.graalvm.compiler.options.OptionValue
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