public abstract class org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates implements org.graalvm.compiler.api.replacements.SnippetTemplateCache
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
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
protected final org.graalvm.compiler.phases.util.Providers providers;
descriptor: Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection;
descriptor: Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.Iterable<org.graalvm.compiler.debug.DebugHandlersFactory> factories;
descriptor: Ljava/lang/Iterable;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
protected final jdk.vm.ci.code.TargetDescription target;
descriptor: Ljdk/vm/ci/code/TargetDescription;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final java.util.Map<org.graalvm.compiler.replacements.SnippetTemplate$CacheKey, org.graalvm.compiler.replacements.SnippetTemplate> templates;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;Lorg/graalvm/compiler/replacements/SnippetTemplate;>;
static final java.util.concurrent.atomic.AtomicInteger nextSnippetTemplateId;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0018) 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/SnippetTemplate;
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.SnippetTemplate$AbstractTemplates.$assertionsDisabled:Z
3: new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putstatic org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.nextSnippetTemplateId:Ljava/util/concurrent/atomic/AtomicInteger;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.graalvm.compiler.options.OptionValues, java.lang.Iterable<org.graalvm.compiler.debug.DebugHandlersFactory>, org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, jdk.vm.ci.code.TargetDescription);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.options:Lorg/graalvm/compiler/options/OptionValues;
2: aload 0
aload 3
putfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.providers:Lorg/graalvm/compiler/phases/util/Providers;
3: aload 0
aload 4
putfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
4: aload 0
aload 5
putfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.target:Ljdk/vm/ci/code/TargetDescription;
5: aload 0
aload 2
putfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.factories:Ljava/lang/Iterable;
6: getstatic org.graalvm.compiler.replacements.SnippetTemplate$Options.UseSnippetTemplateCache:Lorg/graalvm/compiler/options/OptionKey;
aload 1
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 10
7: getstatic org.graalvm.compiler.replacements.SnippetTemplate$Options.MaxTemplatesPerSnippet:Lorg/graalvm/compiler/options/OptionKey;
aload 1
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 6
start local 6 8: aload 0
new org.graalvm.compiler.replacements.SnippetTemplate$LRUCache
dup
iload 6
iload 6
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$LRUCache.<init>:(II)V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
putfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.templates:Ljava/util/Map;
end local 6 9: goto 11
10: StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates org.graalvm.compiler.options.OptionValues java.lang.Iterable org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider jdk.vm.ci.code.TargetDescription
StackMap stack:
aload 0
aconst_null
putfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.templates:Ljava/util/Map;
11: StackMap locals:
StackMap stack:
return
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 12 0 this Lorg/graalvm/compiler/replacements/SnippetTemplate$AbstractTemplates;
0 12 1 options Lorg/graalvm/compiler/options/OptionValues;
0 12 2 factories Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
0 12 3 providers Lorg/graalvm/compiler/phases/util/Providers;
0 12 4 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 12 5 target Ljdk/vm/ci/code/TargetDescription;
8 9 6 size I
Signature: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
MethodParameters:
Name Flags
options
factories
providers
snippetReflection
target
public org.graalvm.compiler.phases.util.Providers getProviders();
descriptor: ()Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.providers:Lorg/graalvm/compiler/phases/util/Providers;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/SnippetTemplate$AbstractTemplates;
public static java.lang.reflect.Method findMethod(java.lang.Class<? extends org.graalvm.compiler.replacements.Snippets>, java.lang.String, java.lang.reflect.Method);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: java.lang.Class java.lang.String java.lang.reflect.Method top int int java.lang.reflect.Method[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 3
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
aload 3
aload 2
invokevirtual java.lang.reflect.Method.equals:(Ljava/lang/Object;)Z
ifne 4
3: aload 3
areturn
end local 3 4: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 1
6: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 declaringClass Ljava/lang/Class<+Lorg/graalvm/compiler/replacements/Snippets;>;
0 7 1 methodName Ljava/lang/String;
0 7 2 except Ljava/lang/reflect/Method;
2 4 3 m Ljava/lang/reflect/Method;
Signature: (Ljava/lang/Class<+Lorg/graalvm/compiler/replacements/Snippets;>;Ljava/lang/String;Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
declaringClass
methodName
except
public static jdk.vm.ci.meta.ResolvedJavaMethod findMethod(jdk.vm.ci.meta.MetaAccessProvider, java.lang.Class<?>, java.lang.String);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 10
StackMap locals: jdk.vm.ci.meta.MetaAccessProvider java.lang.Class java.lang.String jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
3: aload 8
iload 6
aaload
astore 5
start local 5 4: aload 5
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
5: invokestatic org.graalvm.compiler.debug.Assertions.assertionsEnabled:()Z
ifne 7
6: aload 5
areturn
7: StackMap locals: jdk.vm.ci.meta.MetaAccessProvider java.lang.Class java.lang.String jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
getstatic org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.$assertionsDisabled:Z
ifne 8
aload 4
ifnull 8
new java.lang.AssertionError
dup
ldc "multiple definitions found"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
8: StackMap locals:
StackMap stack:
aload 5
astore 4
end local 5 9: StackMap locals: jdk.vm.ci.meta.MetaAccessProvider java.lang.Class java.lang.String jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
iload 7
if_icmplt 3
11: aload 4
ifnonnull 13
12: new org.graalvm.compiler.debug.GraalError
dup
new java.lang.StringBuilder
dup
ldc "Could not find method in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " named "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: jdk.vm.ci.meta.MetaAccessProvider java.lang.Class java.lang.String jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod
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 14 0 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 14 1 declaringClass Ljava/lang/Class<*>;
0 14 2 methodName Ljava/lang/String;
1 14 3 type Ljdk/vm/ci/meta/ResolvedJavaType;
2 14 4 result Ljdk/vm/ci/meta/ResolvedJavaMethod;
4 9 5 m Ljdk/vm/ci/meta/ResolvedJavaMethod;
Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class<*>;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
metaAccess
declaringClass
methodName
protected org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo snippet(java.lang.Class<? extends org.graalvm.compiler.replacements.Snippets>, java.lang.String, jdk.internal.vm.compiler.word.LocationIdentity[]);
descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aconst_null
aconst_null
aload 3
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.snippet:(Ljava/lang/Class;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
areturn
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/SnippetTemplate$AbstractTemplates;
0 1 1 declaringClass Ljava/lang/Class<+Lorg/graalvm/compiler/replacements/Snippets;>;
0 1 2 methodName Ljava/lang/String;
0 1 3 initialPrivateLocations [Ljdk/internal/vm/compiler/word/LocationIdentity;
Signature: (Ljava/lang/Class<+Lorg/graalvm/compiler/replacements/Snippets;>;Ljava/lang/String;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
MethodParameters:
Name Flags
declaringClass
methodName
initialPrivateLocations
protected org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo snippet(java.lang.Class<? extends org.graalvm.compiler.replacements.Snippets>, java.lang.String, jdk.vm.ci.meta.ResolvedJavaMethod, , jdk.internal.vm.compiler.word.LocationIdentity[]);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=6, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 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.SnippetTemplate$AbstractTemplates.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
aload 2
invokestatic org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.findMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 6
start local 6 2: getstatic org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.$assertionsDisabled:Z
ifne 3
aload 6
ifnonnull 3
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "did not find @"
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;
ldc " method in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " named "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
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
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
getstatic org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.$assertionsDisabled:Z
ifne 4
aload 6
ldc Lorg/graalvm/compiler/api/replacements/Snippet;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnonnull 4
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " must be annotated with @"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
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
4: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
aload 6
aload 3
aload 4
getstatic org.graalvm.compiler.core.common.GraalOptions.TrackNodeSourcePosition:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.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
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.options:Lorg/graalvm/compiler/options/OptionValues;
invokeinterface org.graalvm.compiler.nodes.spi.Replacements.registerSnippet:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;ZLorg/graalvm/compiler/options/OptionValues;)V
5: getstatic org.graalvm.compiler.core.common.GraalOptions.SnippetCounters:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.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 6
aload 5
invokestatic org.graalvm.compiler.replacements.SnippetCounterNode.addSnippetCounters:([Ljdk/internal/vm/compiler/word/LocationIdentity;)[Ljdk/internal/vm/compiler/word/LocationIdentity;
goto 7
StackMap locals:
StackMap stack:
6: aload 5
StackMap locals:
StackMap stack: jdk.internal.vm.compiler.word.LocationIdentity[]
7: astore 7
start local 7 8: getstatic org.graalvm.compiler.core.common.GraalOptions.EagerSnippets:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.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 10
9: new org.graalvm.compiler.replacements.SnippetTemplate$EagerSnippetInfo
dup
aload 6
aload 3
aload 7
aload 4
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$EagerSnippetInfo.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljdk/internal/vm/compiler/word/LocationIdentity;Ljava/lang/Object;)V
areturn
10: StackMap locals: jdk.internal.vm.compiler.word.LocationIdentity[]
StackMap stack:
new org.graalvm.compiler.replacements.SnippetTemplate$LazySnippetInfo
dup
aload 6
aload 3
aload 7
aload 4
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$LazySnippetInfo.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljdk/internal/vm/compiler/word/LocationIdentity;Ljava/lang/Object;)V
areturn
end local 7 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 11 0 this Lorg/graalvm/compiler/replacements/SnippetTemplate$AbstractTemplates;
0 11 1 declaringClass Ljava/lang/Class<+Lorg/graalvm/compiler/replacements/Snippets;>;
0 11 2 methodName Ljava/lang/String;
0 11 3 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 11 4 receiver Ljava/lang/Object;
0 11 5 initialPrivateLocations [Ljdk/internal/vm/compiler/word/LocationIdentity;
2 11 6 javaMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
8 11 7 privateLocations [Ljdk/internal/vm/compiler/word/LocationIdentity;
Signature: (Ljava/lang/Class<+Lorg/graalvm/compiler/replacements/Snippets;>;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
MethodParameters:
Name Flags
declaringClass
methodName
original
receiver
initialPrivateLocations
private org.graalvm.compiler.debug.DebugContext openDebugContext(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/debug/DebugContext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.graalvm.compiler.debug.DebugOptions.DebugStubsAndSnippets:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.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
1: new org.graalvm.compiler.debug.DebugContext$Description
dup
aload 2
getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.cacheKey:Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
new java.lang.StringBuilder
dup
ldc "SnippetTemplate_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.nextSnippetTemplateId: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 3
start local 3 2: aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.options:Lorg/graalvm/compiler/options/OptionValues;
aload 3
aload 1
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 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.factories:Ljava/lang/Iterable;
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 3 3: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.options:Lorg/graalvm/compiler/options/OptionValues;
invokestatic org.graalvm.compiler.debug.DebugContext.disabled:(Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/debug/DebugContext;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/replacements/SnippetTemplate$AbstractTemplates;
0 4 1 outer Lorg/graalvm/compiler/debug/DebugContext;
0 4 2 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
2 3 3 description Lorg/graalvm/compiler/debug/DebugContext$Description;
MethodParameters:
Name Flags
outer
args
public org.graalvm.compiler.replacements.SnippetTemplate template(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.replacements.SnippetTemplate$Arguments);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 4
start local 4 2: getstatic org.graalvm.compiler.replacements.SnippetTemplate$Options.UseSnippetTemplateCache:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.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 2
getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.cacheable:Z
ifeq 3
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.templates:Ljava/util/Map;
aload 2
getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.cacheKey:Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.replacements.SnippetTemplate
goto 4
StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate
4: astore 5
start local 5 5: aload 5
ifnull 6
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
ifeq 35
aload 5
getfield org.graalvm.compiler.replacements.SnippetTemplate.snippet:Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
ifne 35
6: StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate
StackMap stack:
aconst_null
astore 6
aconst_null
astore 7
7: aload 0
aload 4
aload 2
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.openDebugContext:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/debug/DebugContext;
astore 8
start local 8 8: aconst_null
astore 9
aconst_null
astore 10
9: getstatic org.graalvm.compiler.replacements.SnippetTemplate.SnippetTemplateCreationTime:Lorg/graalvm/compiler/debug/TimerKey;
aload 8
invokeinterface org.graalvm.compiler.debug.TimerKey.start:(Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/debug/DebugCloseable;
astore 11
start local 11 10: aload 8
ldc "SnippetSpecialization"
aload 2
getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.info:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 12
start local 12 11: getstatic org.graalvm.compiler.replacements.SnippetTemplate.SnippetTemplates:Lorg/graalvm/compiler/debug/CounterKey;
aload 8
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
12: new org.graalvm.compiler.options.OptionValues
dup
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.options:Lorg/graalvm/compiler/options/OptionValues;
getstatic org.graalvm.compiler.core.common.GraalOptions.TraceInlining:Lorg/graalvm/compiler/options/OptionKey;
getstatic org.graalvm.compiler.core.common.GraalOptions.TraceInliningForStubsAndSnippets:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.options:Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
iconst_0
anewarray java.lang.Object
invokespecial org.graalvm.compiler.options.OptionValues.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/Object;[Ljava/lang/Object;)V
astore 13
start local 13 13: new org.graalvm.compiler.replacements.SnippetTemplate
dup
aload 13
aload 8
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.providers:Lorg/graalvm/compiler/phases/util/Providers;
aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
aload 1
invokespecial org.graalvm.compiler.replacements.SnippetTemplate.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;ZLorg/graalvm/compiler/graph/Node;)V
astore 5
14: getstatic org.graalvm.compiler.replacements.SnippetTemplate$Options.UseSnippetTemplateCache:Lorg/graalvm/compiler/options/OptionKey;
aload 13
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 16
aload 2
getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.cacheable:Z
ifeq 16
15: aload 0
getfield org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.templates:Ljava/util/Map;
aload 2
getfield org.graalvm.compiler.replacements.SnippetTemplate$Arguments.cacheKey:Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 13 16: StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.replacements.SnippetTemplate java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack:
aload 12
ifnull 19
aload 12
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 9
aload 12
ifnull 18
aload 12
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 12 StackMap locals:
StackMap stack:
18: aload 9
athrow
StackMap locals:
StackMap stack:
19: aload 11
ifnull 29
aload 11
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 10
aload 9
ifnonnull 21
aload 10
astore 9
goto 22
StackMap locals:
StackMap stack:
21: aload 9
aload 10
if_acmpeq 22
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 11
ifnull 23
aload 11
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 11 StackMap locals:
StackMap stack:
23: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 10
aload 9
ifnonnull 25
aload 10
astore 9
goto 26
StackMap locals:
StackMap stack:
25: aload 9
aload 10
if_acmpeq 26
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
26: aload 9
athrow
StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.replacements.SnippetTemplate java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext
StackMap stack: java.lang.Throwable
27: astore 9
start local 9 28: aload 8
aload 9
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 9 29: StackMap locals:
StackMap stack:
aload 8
ifnull 35
aload 8
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 6
aload 8
ifnull 31
aload 8
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
end local 8 StackMap locals:
StackMap stack:
31: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
32: astore 7
aload 6
ifnonnull 33
aload 7
astore 6
goto 34
StackMap locals:
StackMap stack:
33: aload 6
aload 7
if_acmpeq 34
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
34: aload 6
athrow
35: StackMap locals:
StackMap stack:
aload 5
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 36 0 this Lorg/graalvm/compiler/replacements/SnippetTemplate$AbstractTemplates;
0 36 1 replacee Lorg/graalvm/compiler/nodes/ValueNode;
0 36 2 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
1 36 3 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 36 4 outer Lorg/graalvm/compiler/debug/DebugContext;
5 36 5 template Lorg/graalvm/compiler/replacements/SnippetTemplate;
8 31 8 debug Lorg/graalvm/compiler/debug/DebugContext;
10 23 11 a Lorg/graalvm/compiler/debug/DebugCloseable;
11 18 12 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
13 16 13 snippetOptions Lorg/graalvm/compiler/options/OptionValues;
28 29 9 e Ljava/lang/Throwable;
Exception table:
from to target type
11 16 17 any
10 19 20 any
9 24 24 any
8 27 27 Class java.lang.Throwable
8 29 30 any
7 32 32 any
MethodParameters:
Name Flags
replacee
args final
}
SourceFile: "SnippetTemplate.java"
NestHost: org.graalvm.compiler.replacements.SnippetTemplate
InnerClasses:
public Description = org.graalvm.compiler.debug.DebugContext$Description of org.graalvm.compiler.debug.DebugContext
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public abstract AbstractTemplates = org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates of org.graalvm.compiler.replacements.SnippetTemplate
public Arguments = org.graalvm.compiler.replacements.SnippetTemplate$Arguments of org.graalvm.compiler.replacements.SnippetTemplate
CacheKey = org.graalvm.compiler.replacements.SnippetTemplate$CacheKey of org.graalvm.compiler.replacements.SnippetTemplate
protected EagerSnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$EagerSnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
private final LRUCache = org.graalvm.compiler.replacements.SnippetTemplate$LRUCache of org.graalvm.compiler.replacements.SnippetTemplate
protected LazySnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$LazySnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
Options = org.graalvm.compiler.replacements.SnippetTemplate$Options of org.graalvm.compiler.replacements.SnippetTemplate
public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate