public abstract class org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates extends org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates
super_class: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates;
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.InstanceOfSnippetsTemplates.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, jdk.vm.ci.code.TargetDescription);
descriptor: (Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates;
0 2 1 providers Lorg/graalvm/compiler/phases/util/Providers;
0 2 2 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 2 3 target Ljdk/vm/ci/code/TargetDescription;
MethodParameters:
Name Flags
providers
snippetReflection
target
protected abstract org.graalvm.compiler.replacements.SnippetTemplate$Arguments makeArguments(org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$InstanceOfUsageReplacer, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$InstanceOfUsageReplacer;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
replacer
tool
public void lower(org.graalvm.compiler.nodes.calc.FloatingNode, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.$assertionsDisabled:Z
ifne 1
aload 1
instanceof org.graalvm.compiler.nodes.java.InstanceOfNode
ifne 1
aload 1
instanceof org.graalvm.compiler.nodes.java.InstanceOfDynamicNode
ifne 1
aload 1
instanceof org.graalvm.compiler.nodes.java.ClassIsAssignableFromNode
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
astore 3
start local 3 2: new org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation
dup
invokespecial org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation.<init>:()V
astore 4
start local 4 3: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 12
StackMap locals: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.nodes.spi.LoweringTool java.util.List org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 5
start local 5 5: aload 5
invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
checkcast org.graalvm.compiler.nodes.StructuredGraph
astore 7
start local 7 6: aload 0
aload 1
aload 4
aload 5
aload 7
invokevirtual org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.createReplacer:(Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$Instantiation;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$InstanceOfUsageReplacer;
astore 8
start local 8 7: aload 4
invokevirtual org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation.isInitialized:()Z
ifeq 10
8: aload 8
invokevirtual org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$InstanceOfUsageReplacer.replaceUsingInstantiation:()V
9: goto 12
10: StackMap locals: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.nodes.spi.LoweringTool java.util.List org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$InstanceOfUsageReplacer
StackMap stack:
aload 0
aload 8
aload 2
invokevirtual org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.makeArguments:(Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$InstanceOfUsageReplacer;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
astore 9
start local 9 11: aload 0
aload 9
invokevirtual org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
aload 0
getfield org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
aload 8
aload 2
aload 9
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)V
end local 9 end local 8 end local 7 end local 5 12: StackMap locals: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.nodes.spi.LoweringTool java.util.List org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
13: getstatic org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.$assertionsDisabled:Z
ifne 14
aload 1
invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.hasNoUsages:()Z
ifne 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.nodes.spi.LoweringTool java.util.List org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.isDeleted:()Z
ifne 16
15: aload 1
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
16: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates;
0 17 1 instanceOf Lorg/graalvm/compiler/nodes/calc/FloatingNode;
0 17 2 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
2 17 3 usages Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
3 17 4 instantiation Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$Instantiation;
5 12 5 usage Lorg/graalvm/compiler/graph/Node;
6 12 7 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
7 12 8 replacer Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$InstanceOfUsageReplacer;
11 12 9 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
MethodParameters:
Name Flags
instanceOf
tool
protected org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$InstanceOfUsageReplacer createReplacer(org.graalvm.compiler.nodes.calc.FloatingNode, org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation, org.graalvm.compiler.graph.Node, org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$Instantiation;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$InstanceOfUsageReplacer;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 3
invokevirtual org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.canMaterialize:(Lorg/graalvm/compiler/graph/Node;)Z
ifne 8
1: iconst_1
aload 4
invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 6
start local 6 2: iconst_0
aload 4
invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 7
start local 7 3: aload 2
invokevirtual org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation.isInitialized:()Z
ifeq 6
aload 6
aload 2
getfield org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation.trueValue:Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 4
aload 7
aload 2
getfield org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation.falseValue:Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 6
4: StackMap locals: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.StructuredGraph top org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 2
getfield org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation.trueValue:Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
5: aload 2
getfield org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation.falseValue:Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
6: StackMap locals:
StackMap stack:
new org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$NonMaterializationUsageReplacer
dup
aload 2
aload 6
aload 7
aload 1
aload 3
invokespecial org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$NonMaterializationUsageReplacer.<init>:(Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$Instantiation;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/graph/Node;)V
astore 5
end local 7 end local 6 start local 5 7: goto 11
end local 5 8: StackMap locals: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates org.graalvm.compiler.nodes.calc.FloatingNode org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
getstatic org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates.$assertionsDisabled:Z
ifne 9
aload 3
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifne 9
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "unexpected usage of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals:
StackMap stack:
aload 3
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 6
start local 6 10: new org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$MaterializationUsageReplacer
dup
aload 2
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
aload 6
invokespecial org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$MaterializationUsageReplacer.<init>:(Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$Instantiation;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/nodes/calc/ConditionalNode;)V
astore 5
end local 6 start local 5 11: StackMap locals: org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$InstanceOfUsageReplacer
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 12 0 this Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates;
0 12 1 instanceOf Lorg/graalvm/compiler/nodes/calc/FloatingNode;
0 12 2 instantiation Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$Instantiation;
0 12 3 usage Lorg/graalvm/compiler/graph/Node;
0 12 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
7 8 5 replacer Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$InstanceOfUsageReplacer;
11 12 5 replacer Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates$InstanceOfUsageReplacer;
2 7 6 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
3 7 7 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
10 11 6 c Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
MethodParameters:
Name Flags
instanceOf
instantiation
usage
graph final
protected boolean canMaterialize(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 4
1: aload 1
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 3
aload 2
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 3
iconst_1
ireturn
StackMap locals: org.graalvm.compiler.nodes.calc.ConditionalNode
StackMap stack:
3: iconst_0
ireturn
end local 2 4: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.IfNode
ifne 5
aload 1
instanceof org.graalvm.compiler.nodes.FixedGuardNode
ifne 5
aload 1
instanceof org.graalvm.compiler.nodes.ShortCircuitOrNode
ifne 5
aload 1
instanceof org.graalvm.compiler.nodes.ConditionAnchorNode
ifeq 6
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/replacements/InstanceOfSnippetsTemplates;
0 7 1 usage Lorg/graalvm/compiler/graph/Node;
2 4 2 cn Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
MethodParameters:
Name Flags
usage
}
SourceFile: "InstanceOfSnippetsTemplates.java"
NestMembers:
org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$InstanceOfUsageReplacer org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$MaterializationUsageReplacer org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$NonMaterializationUsageReplacer
InnerClasses:
public abstract InstanceOfUsageReplacer = org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$InstanceOfUsageReplacer of org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates
public final Instantiation = org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$Instantiation of org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates
public MaterializationUsageReplacer = org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$MaterializationUsageReplacer of org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates
public NonMaterializationUsageReplacer = org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates$NonMaterializationUsageReplacer of org.graalvm.compiler.replacements.InstanceOfSnippetsTemplates
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
public abstract UsageReplacer = org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer of org.graalvm.compiler.replacements.SnippetTemplate