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
protected org.graalvm.compiler.phases.util.Providers providers;
descriptor: Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x0004) ACC_PROTECTED
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 jdk.internal.vm.compiler.collections.EconomicMap<java.lang.String, org.graalvm.compiler.api.replacements.SnippetTemplateCache> snippetTemplateCache;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljdk/internal/vm/compiler/collections/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.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.ReplacementsImpl.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/ReplacementsImpl;
public void setProviders(org.graalvm.compiler.phases.util.Providers);
descriptor: (Lorg/graalvm/compiler/phases/util/Providers;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: 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;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 2 1 providers Lorg/graalvm/compiler/phases/util/Providers;
MethodParameters:
Name Flags
providers
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;
public java.lang.Class<? extends org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderPlugin> getIntrinsifyingPlugin(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
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;
ifnull 2
1: StackMap locals:
StackMap stack:
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/GeneratedInvocationPlugin;
areturn
2: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/graalvm/compiler/word/Word$Operation;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 4
3: ldc Lorg/graalvm/compiler/word/WordOperationPlugin;
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
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;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderPlugin;>;
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 2
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;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
aconst_null
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;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 12
getstatic jdk.vm.ci.services.Services.IS_BUILDING_NATIVE_IMAGE:Z
ifne 12
aload 2
ldc Lorg/graalvm/compiler/graph/Node$NodeIntrinsic;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 12
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
9: ldc Lorg/graalvm/compiler/graph/Node$NodeIntrinsic;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
10: 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
11: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
12: 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 13 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 13 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 13 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 13 3 args [Lorg/graalvm/compiler/nodes/ValueNode;
1 13 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=7, 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 12
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 12
3: aload 0
aload 2
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.getIntrinsifyingPlugin:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/Class;
astore 5
start local 5 4: aload 5
ifnull 9
5: aload 2
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 6: new org.graalvm.compiler.debug.GraalError
dup
ldc "Call to %s should have been intrinsified by a %s. This is typically caused by Eclipse failing to run an annotation processor. This can usually be fixed by forcing Eclipse to rebuild the source file in which %s is declared"
iconst_3
anewarray java.lang.Object
dup
iconst_0
7: aload 6
aastore
dup
iconst_1
aload 5
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 6
8: aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 6 9: StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext java.lang.Class
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
10: 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;
11: aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 5 end local 4 12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 13 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 13 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 13 3 invoke Lorg/graalvm/compiler/nodes/Invoke;
2 12 4 intrinsic Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
4 12 5 pluginClass Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderPlugin;>;
6 9 6 methodDesc Ljava/lang/String;
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 jdk.internal.vm.compiler.collections.Equivalence.DEFAULT:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.replacements.ReplacementsImpl.snippetTemplateCache:Ljdk/internal/vm/compiler/collections/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[], boolean, org.graalvm.compiler.graph.NodeSourcePosition);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aconst_null
aload 2
iload 3
aload 4
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.getSnippet:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
areturn
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 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 2 args [Ljava/lang/Object;
0 1 3 trackNodeSourcePosition Z
0 1 4 replaceePosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
MethodParameters:
Name Flags
method
args
trackNodeSourcePosition
replaceePosition
public 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: (0x0001) ACC_PUBLIC
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[], boolean, org.graalvm.compiler.graph.NodeSourcePosition);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, 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.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 6
start local 6 5: aload 6
ifnull 6
iload 4
ifeq 33
aload 6
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
ifne 33
6: StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aconst_null
astore 7
aconst_null
astore 8
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 9
start local 9 8: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.SnippetPreparationTime:Lorg/graalvm/compiler/debug/TimerKey;
aload 9
invokeinterface org.graalvm.compiler.debug.TimerKey.start:(Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/debug/DebugCloseable;
astore 10
start local 10 9: aload 0
aload 9
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.defaultBytecodeProvider:Lorg/graalvm/compiler/bytecode/BytecodeProvider;
aload 1
aload 3
aload 2
iload 4
aload 5
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;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 11
start local 11 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 11
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
aload 11
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[] int org.graalvm.compiler.graph.NodeSourcePosition 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 11
13: aload 10
ifnull 14
aload 10
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
14: aload 9
ifnull 15
aload 9
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 11
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.freeze:()V
17: aload 6
ifnull 20
18: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 6
aload 11
invokeinterface java.util.concurrent.ConcurrentMap.replace:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
pop
19: goto 21
20: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 11
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: StackMap locals:
StackMap stack:
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 6
end local 11 22: aload 10
ifnull 25
aload 10
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 25
StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Object[] int org.graalvm.compiler.graph.NodeSourcePosition 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
23: astore 7
aload 10
ifnull 24
aload 10
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 10 StackMap locals:
StackMap stack:
24: aload 7
athrow
StackMap locals:
StackMap stack:
25: aload 9
ifnull 33
aload 9
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 8
aload 7
ifnonnull 27
aload 8
astore 7
goto 28
StackMap locals:
StackMap stack:
27: aload 7
aload 8
if_acmpeq 28
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
28: aload 9
ifnull 29
aload 9
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
end local 9 StackMap locals:
StackMap stack:
29: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 8
aload 7
ifnonnull 31
aload 8
astore 7
goto 32
StackMap locals:
StackMap stack:
31: aload 7
aload 8
if_acmpeq 32
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
32: aload 7
athrow
33: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 34
iload 4
ifeq 34
aload 6
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
ifne 34
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
34: StackMap locals:
StackMap stack:
aload 6
areturn
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 35 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 35 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 35 2 recursiveEntry Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 35 3 args [Ljava/lang/Object;
0 35 4 trackNodeSourcePosition Z
0 35 5 replaceePosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
5 35 6 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
8 29 9 debug Lorg/graalvm/compiler/debug/DebugContext;
9 24 10 a Lorg/graalvm/compiler/debug/DebugCloseable;
10 22 11 newGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
Exception table:
from to target type
9 13 23 any
16 22 23 any
8 14 26 any
16 25 26 any
7 15 30 any
16 30 30 any
MethodParameters:
Name Flags
method
recursiveEntry
args
trackNodeSourcePosition
replaceePosition
public void registerSnippet(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Object, boolean);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: return
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 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 2 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 3 receiver Ljava/lang/Object;
0 1 4 trackNodeSourcePosition Z
MethodParameters:
Name Flags
method
original
receiver
trackNodeSourcePosition
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, boolean, org.graalvm.compiler.graph.NodeSourcePosition);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;IZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=15, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 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 6
start local 6 1: aload 6
ifnull 42
aload 6
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.inlineOnly:()Z
ifeq 2
iload 2
iflt 42
2: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int int org.graalvm.compiler.graph.NodeSourcePosition 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 7
start local 7 3: aload 6
instanceof org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
ifeq 29
4: aload 6
checkcast org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
astore 8
start local 8 5: aload 8
aload 7
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getSubstitute:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 9
start local 9 6: 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 7
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 9
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.StructuredGraph
goto 8
StackMap locals: jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
7: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
8: astore 10
start local 10 9: aload 10
ifnull 10
aload 10
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeSourcePosition:()Z
iload 3
if_icmpeq 26
10: StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aconst_null
astore 11
aconst_null
astore 12
11: 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 13
start local 13 12: aload 0
aload 13
aload 8
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getBytecodeProvider:()Lorg/graalvm/compiler/bytecode/BytecodeProvider;
aload 9
aconst_null
aload 1
iload 3
aload 4
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;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 10
13: 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
ifne 17
14: aload 10
15: aload 13
ifnull 16
aload 13
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
16: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int int org.graalvm.compiler.graph.NodeSourcePosition 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: org.graalvm.compiler.nodes.StructuredGraph
areturn
17: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.freeze:()V
18: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 9
aload 10
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.graphs:Ljava/util/concurrent/ConcurrentMap;
aload 9
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.StructuredGraph
astore 10
20: aload 13
ifnull 26
aload 13
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 11
aload 13
ifnull 22
aload 13
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
end local 13 StackMap locals:
StackMap stack:
22: aload 11
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 12
aload 11
ifnonnull 24
aload 12
astore 11
goto 25
StackMap locals:
StackMap stack:
24: aload 11
aload 12
if_acmpeq 25
aload 11
aload 12
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 11
athrow
26: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 27
aload 10
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isFrozen:()Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aload 10
astore 5
end local 10 end local 9 end local 8 start local 5 28: goto 43
end local 5 29: 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 8
start local 8 30: 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 9
start local 9 31: 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 10
start local 10 32: 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 11
start local 11 33: aconst_null
astore 12
aconst_null
astore 13
34: 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 14
start local 14 35: new org.graalvm.compiler.replacements.IntrinsicGraphBuilder
dup
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.options:Lorg/graalvm/compiler/options/OptionValues;
aload 14
aload 7
aload 9
aload 10
aload 11
aload 8
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 6
invokevirtual org.graalvm.compiler.replacements.IntrinsicGraphBuilder.buildGraph:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 5
start local 5 36: aload 14
ifnull 43
aload 14
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
goto 43
end local 5 StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int int org.graalvm.compiler.graph.NodeSourcePosition 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
37: astore 12
aload 14
ifnull 38
aload 14
invokevirtual org.graalvm.compiler.debug.DebugContext.close:()V
end local 14 StackMap locals:
StackMap stack:
38: aload 12
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
39: astore 13
aload 12
ifnonnull 40
aload 13
astore 12
goto 41
StackMap locals:
StackMap stack:
40: aload 12
aload 13
if_acmpeq 41
aload 12
aload 13
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
41: aload 12
athrow
end local 11 end local 10 end local 9 end local 8 end local 7 42: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int int org.graalvm.compiler.graph.NodeSourcePosition top org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
StackMap stack:
aconst_null
astore 5
start local 5 43: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod int int org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
StackMap stack:
aload 5
areturn
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 44 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 44 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 44 2 invokeBci I
0 44 3 trackNodeSourcePosition Z
0 44 4 replaceePosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
28 29 5 result Lorg/graalvm/compiler/nodes/StructuredGraph;
36 37 5 result Lorg/graalvm/compiler/nodes/StructuredGraph;
43 44 5 result Lorg/graalvm/compiler/nodes/StructuredGraph;
1 44 6 plugin Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
3 42 7 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
5 28 8 msPlugin Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;
6 28 9 substitute Ljdk/vm/ci/meta/ResolvedJavaMethod;
9 28 10 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
12 22 13 debug Lorg/graalvm/compiler/debug/DebugContext;
30 42 8 code Lorg/graalvm/compiler/bytecode/Bytecode;
31 42 9 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
32 42 10 constantFieldProvider Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
33 42 11 stampProvider Lorg/graalvm/compiler/nodes/spi/StampProvider;
35 38 14 debug Lorg/graalvm/compiler/debug/DebugContext;
Exception table:
from to target type
12 15 21 any
17 20 21 any
11 16 23 any
17 23 23 any
35 36 37 any
34 39 39 any
MethodParameters:
Name Flags
method
invokeBci
trackNodeSourcePosition
replaceePosition
public org.graalvm.compiler.nodes.StructuredGraph getIntrinsicGraph(jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.core.common.CompilationIdentifier, org.graalvm.compiler.debug.DebugContext);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/core/common/CompilationIdentifier;Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
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 33
2: aload 4
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 5
start local 5 3: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 4
aload 5
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: org.graalvm.compiler.bytecode.Bytecode jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 4
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getOrigin:()Lorg/graalvm/compiler/bytecode/BytecodeProvider;
astore 6
start local 6 5: new org.graalvm.compiler.nodes.StructuredGraph$Builder
dup
aload 0
getfield org.graalvm.compiler.replacements.ReplacementsImpl.options:Lorg/graalvm/compiler/options/OptionValues;
aload 3
getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.YES:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
invokespecial org.graalvm.compiler.nodes.StructuredGraph$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;)V
6: aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.method:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
7: aload 2
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.compilationId:(Lorg/graalvm/compiler/core/common/CompilationIdentifier;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
8: aload 6
invokeinterface org.graalvm.compiler.bytecode.BytecodeProvider.shouldRecordMethodDependencies:()Z
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.recordInlinedMethods:(Z)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
9: iconst_1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.setIsSubstitution:(Z)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
10: invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.build:()Lorg/graalvm/compiler/nodes/StructuredGraph;
11: astore 7
start local 7 12: aconst_null
astore 8
aconst_null
astore 9
13: aload 3
ldc "GetIntrinsicGraph"
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 10
start local 10 14: new org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins
dup
aload 0
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl.getGraphBuilderPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)V
astore 11
start local 11 15: aload 11
invokestatic org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getSnippetDefault:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
astore 12
start local 12 16: new org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext
dup
aload 1
aload 5
aload 6
getstatic org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext$CompilationContext.ROOT_COMPILATION:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext$CompilationContext;
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext$CompilationContext;)V
astore 13
start local 13 17: new org.graalvm.compiler.java.GraphBuilderPhase$Instance
dup
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;
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;
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;
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;
aload 12
18: getstatic org.graalvm.compiler.phases.OptimisticOptimizations.NONE:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
aload 13
19: invokespecial org.graalvm.compiler.java.GraphBuilderPhase$Instance.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/spi/StampProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;Lorg/graalvm/compiler/phases/OptimisticOptimizations;Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)V
20: aload 7
invokevirtual org.graalvm.compiler.java.GraphBuilderPhase$Instance.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
21: getstatic org.graalvm.compiler.replacements.ReplacementsImpl.$assertionsDisabled:Z
ifne 22
aload 7
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isFrozen:()Z
ifeq 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.Bytecode jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.bytecode.BytecodeProvider org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext
StackMap stack:
aload 7
23: aload 10
ifnull 24
aload 10
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
24: StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
areturn
end local 13 end local 12 end local 11 StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.Bytecode jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.bytecode.BytecodeProvider org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
25: astore 8
26: aload 10
ifnull 27
aload 10
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 10 StackMap locals:
StackMap stack:
27: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 9
aload 8
ifnonnull 29
aload 9
astore 8
goto 30
StackMap locals:
StackMap stack:
29: aload 8
aload 9
if_acmpeq 30
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
30: aload 8
athrow
StackMap locals: org.graalvm.compiler.replacements.ReplacementsImpl jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.Bytecode jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.bytecode.BytecodeProvider org.graalvm.compiler.nodes.StructuredGraph
StackMap stack: java.lang.Throwable
31: astore 8
start local 8 32: aload 3
aload 8
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
pop
end local 8 end local 7 end local 6 end local 5 33: 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 34 0 this Lorg/graalvm/compiler/replacements/ReplacementsImpl;
0 34 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 34 2 compilationId Lorg/graalvm/compiler/core/common/CompilationIdentifier;
0 34 3 debug Lorg/graalvm/compiler/debug/DebugContext;
1 34 4 subst Lorg/graalvm/compiler/bytecode/Bytecode;
3 33 5 substMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
5 33 6 bytecodeProvider Lorg/graalvm/compiler/bytecode/BytecodeProvider;
12 33 7 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
14 27 10 scope Lorg/graalvm/compiler/debug/DebugContext$Scope;
15 25 11 plugins Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
16 25 12 config Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
17 25 13 initialReplacementContext Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
32 33 8 e Ljava/lang/Throwable;
Exception table:
from to target type
14 23 25 any
13 24 28 any
25 28 28 any
12 24 31 Class java.lang.Throwable
25 31 31 Class java.lang.Throwable
MethodParameters:
Name Flags
method
compilationId
debug
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, boolean, org.graalvm.compiler.graph.NodeSourcePosition);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 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
iload 6
aload 7
invokevirtual org.graalvm.compiler.replacements.ReplacementsImpl$GraphMaker.makeGraph:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeProvider;[Ljava/lang/Object;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)Lorg/graalvm/compiler/nodes/StructuredGraph;
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 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;
0 1 6 trackNodeSourcePosition Z
0 1 7 replaceePosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
MethodParameters:
Name Flags
debug
bytecodeProvider
method
args
original
trackNodeSourcePosition
replaceePosition
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:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface jdk.internal.vm.compiler.collections.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:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 1
invokeinterface jdk.internal.vm.compiler.collections.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:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface jdk.internal.vm.compiler.collections.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 Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
public Instance = org.graalvm.compiler.java.GraphBuilderPhase$Instance of org.graalvm.compiler.java.GraphBuilderPhase
public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
public Builder = org.graalvm.compiler.nodes.StructuredGraph$Builder of org.graalvm.compiler.nodes.StructuredGraph
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 final CompilationContext = org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext$CompilationContext of org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext
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