public class org.graalvm.compiler.nodes.java.LoadIndexedNode extends org.graalvm.compiler.nodes.java.AccessIndexedNode implements org.graalvm.compiler.nodes.spi.Virtualizable, org.graalvm.compiler.graph.spi.Canonicalizable, org.graalvm.compiler.graph.spi.Simplifiable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.nodes.java.LoadIndexedNode
super_class: org.graalvm.compiler.nodes.java.AccessIndexedNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.java.LoadIndexedNode> TYPE;
descriptor: Lorg/graalvm/compiler/graph/NodeClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;>;
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/nodes/java/LoadIndexedNode;
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.nodes.java.LoadIndexedNode.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.nodes.java.LoadIndexedNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.extended.GuardingNode, jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getstatic org.graalvm.compiler.nodes.java.LoadIndexedNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
aload 1
aload 2
aload 5
invokestatic org.graalvm.compiler.nodes.java.LoadIndexedNode.createStamp:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
aload 3
aload 4
aload 5
invokespecial org.graalvm.compiler.nodes.java.LoadIndexedNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)V
1: 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 2 0 this Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
0 2 1 assumptions Ljdk/vm/ci/meta/Assumptions;
0 2 2 array Lorg/graalvm/compiler/nodes/ValueNode;
0 2 3 index Lorg/graalvm/compiler/nodes/ValueNode;
0 2 4 boundsCheck Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 2 5 elementKind Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
assumptions
array
index
boundsCheck
elementKind
public static org.graalvm.compiler.nodes.ValueNode create(jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.extended.GuardingNode, jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ConstantReflectionProvider);
descriptor: (Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=8, 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 1
aload 2
aload 5
aload 6
invokestatic org.graalvm.compiler.nodes.java.LoadIndexedNode.tryConstantFold:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 1: aload 7
ifnull 3
2: aload 7
areturn
3: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
new org.graalvm.compiler.nodes.java.LoadIndexedNode
dup
aload 0
aload 1
aload 2
aload 3
aload 4
invokespecial org.graalvm.compiler.nodes.java.LoadIndexedNode.<init>:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)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 4 0 assumptions Ljdk/vm/ci/meta/Assumptions;
0 4 1 array Lorg/graalvm/compiler/nodes/ValueNode;
0 4 2 index Lorg/graalvm/compiler/nodes/ValueNode;
0 4 3 boundsCheck Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 4 4 elementKind Ljdk/vm/ci/meta/JavaKind;
0 4 5 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 4 6 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
1 4 7 constant Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
assumptions
array
index
boundsCheck
elementKind
metaAccess
constantReflection
protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.nodes.java.LoadIndexedNode>, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.extended.GuardingNode, jdk.vm.ci.meta.JavaKind);
descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, 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
aload 1
aload 2
aload 3
aload 4
aload 5
aload 6
invokespecial org.graalvm.compiler.nodes.java.AccessIndexedNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)V
1: 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 2 0 this Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
0 2 1 c Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;>;
0 2 2 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 2 3 array Lorg/graalvm/compiler/nodes/ValueNode;
0 2 4 index Lorg/graalvm/compiler/nodes/ValueNode;
0 2 5 boundsCheck Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 2 6 elementKind Ljdk/vm/ci/meta/JavaKind;
Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;>;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)V
MethodParameters:
Name Flags
c
stamp
array
index
boundsCheck
elementKind
private static org.graalvm.compiler.core.common.type.Stamp createStamp(jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 1: aload 2
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 3
aload 3
ifnull 3
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifeq 3
2: aload 0
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokestatic org.graalvm.compiler.core.common.type.TypeReference.createTrusted:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/core/common/type/TypeReference;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
areturn
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 1
aload 2
invokestatic org.graalvm.compiler.nodes.java.LoadIndexedNode.determinePreciseArrayElementType:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaKind;
astore 4
start local 4 4: aload 4
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 assumptions Ljdk/vm/ci/meta/Assumptions;
0 5 1 array Lorg/graalvm/compiler/nodes/ValueNode;
0 5 2 kind Ljdk/vm/ci/meta/JavaKind;
1 5 3 type Ljdk/vm/ci/meta/ResolvedJavaType;
4 5 4 preciseKind Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
assumptions
array
kind
private static jdk.vm.ci.meta.JavaKind determinePreciseArrayElementType(org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/JavaKind;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 4
1: aload 0
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.ObjectStamp
invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 2: aload 2
ifnull 4
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifeq 4
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
ifnull 4
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 4
3: getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
areturn
end local 2 4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 array Lorg/graalvm/compiler/nodes/ValueNode;
0 5 1 kind Ljdk/vm/ci/meta/JavaKind;
2 4 2 javaType Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
array
kind
public boolean inferStamp();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.graalvm.compiler.nodes.java.LoadIndexedNode.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.elementKind:()Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.nodes.java.LoadIndexedNode.createStamp:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.improveWith:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.updateStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
public void virtualize(org.graalvm.compiler.nodes.spi.VirtualizerTool);
descriptor: (Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 2
start local 2 1: aload 2
instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
ifeq 19
2: aload 2
checkcast org.graalvm.compiler.nodes.virtual.VirtualArrayNode
astore 3
start local 3 3: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 4: aload 4
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 5
aload 4
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
goto 6
StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.virtual.VirtualArrayNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
5: iconst_m1
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: iload 5
iflt 19
iload 5
aload 3
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.entryCount:()I
if_icmpge 19
8: aload 1
aload 3
iload 5
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 9: aload 3
aload 1
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.elementKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.isVirtualByteArrayAccess:(Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;Ljdk/vm/ci/meta/JavaKind;)Z
ifeq 13
10: aload 3
aload 6
iload 5
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.elementKind:()Ljdk/vm/ci/meta/JavaKind;
aload 1
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.canVirtualizeLargeByteArrayUnsafeRead:(Lorg/graalvm/compiler/nodes/ValueNode;ILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;)Z
ifeq 19
11: aload 1
aload 6
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.elementKind:()Ljdk/vm/ci/meta/JavaKind;
aload 0
getfield org.graalvm.compiler.nodes.java.LoadIndexedNode.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.virtual.VirtualArrayNode.virtualizeByteArrayRead:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.replaceWith:(Lorg/graalvm/compiler/nodes/ValueNode;)V
12: goto 19
StackMap locals: int org.graalvm.compiler.nodes.ValueNode
StackMap stack:
13: aload 0
getfield org.graalvm.compiler.nodes.java.LoadIndexedNode.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 16
14: aload 1
aload 6
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.replaceWith:(Lorg/graalvm/compiler/nodes/ValueNode;)V
15: goto 19
16: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.java.LoadIndexedNode.$assertionsDisabled:Z
ifne 19
aload 0
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 18
aload 6
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 19
aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 19
17: aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 19
StackMap locals:
StackMap stack:
18: new java.lang.AssertionError
dup
ldc "Can only allow different stack kind two slot marker writes on one stot fields."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 6 end local 5 end local 4 end local 3 19: StackMap locals: org.graalvm.compiler.nodes.java.LoadIndexedNode org.graalvm.compiler.nodes.spi.VirtualizerTool org.graalvm.compiler.nodes.ValueNode
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
0 20 1 tool Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;
1 20 2 alias Lorg/graalvm/compiler/nodes/ValueNode;
3 19 3 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualArrayNode;
4 19 4 indexValue Lorg/graalvm/compiler/nodes/ValueNode;
7 19 5 idx I
9 19 6 entry Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
tool
public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isNullConstant:()Z
ifeq 2
1: new org.graalvm.compiler.nodes.DeoptimizeNode
dup
getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.NullCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
invokespecial org.graalvm.compiler.nodes.DeoptimizeNode.<init>:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
invokestatic org.graalvm.compiler.nodes.java.LoadIndexedNode.tryConstantFold:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 2
areturn
5: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
0 6 1 tool Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
3 6 2 constant Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
tool
public void simplify(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.allUsagesAvailable:()Z
ifeq 15
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.hasNoUsages:()Z
ifeq 15
1: aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 2
start local 2 2: aload 0
getfield org.graalvm.compiler.nodes.java.LoadIndexedNode.array:Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
invokestatic org.graalvm.compiler.nodes.java.ArrayLengthNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 3: getstatic org.graalvm.compiler.core.common.calc.CanonicalCondition.BT:Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
aload 0
getfield org.graalvm.compiler.nodes.java.LoadIndexedNode.index:Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 2
invokestatic org.graalvm.compiler.nodes.calc.CompareNode.createCompareNode:(Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
astore 4
start local 4 4: aload 4
invokevirtual org.graalvm.compiler.nodes.LogicNode.isTautology:()Z
ifeq 6
5: return
6: StackMap locals: org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.LogicNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.allowsGuardInsertion:()Z
ifeq 15
7: aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
ifne 12
8: aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 3
9: aload 3
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifeq 12
10: aload 3
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
astore 5
start local 5 11: aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
end local 5 12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 4
13: new org.graalvm.compiler.nodes.FixedGuardNode
dup
aload 4
getstatic jdk.vm.ci.meta.DeoptimizationReason.BoundsCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
iconst_0
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)V
astore 5
start local 5 14: aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
end local 5 end local 4 end local 3 end local 2 15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
0 16 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
2 15 2 view Lorg/graalvm/compiler/nodes/NodeView;
3 15 3 arrayLength Lorg/graalvm/compiler/nodes/ValueNode;
4 15 4 boundsCheck Lorg/graalvm/compiler/nodes/LogicNode;
11 12 5 fixedArrayLength Lorg/graalvm/compiler/nodes/FixedWithNextNode;
14 15 5 fixedGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
MethodParameters:
Name Flags
tool
private static org.graalvm.compiler.nodes.ValueNode tryConstantFold(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ConstantReflectionProvider);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 9
aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.isNullConstant:()Z
ifne 9
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 9
1: aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 4
start local 4 2: aload 4
ifnull 9
3: aload 0
checkcast org.graalvm.compiler.nodes.ConstantNode
invokevirtual org.graalvm.compiler.nodes.ConstantNode.getStableDimension:()I
istore 5
start local 5 4: iload 5
ifle 9
5: aload 3
aload 4
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readArrayElement:(Ljdk/vm/ci/meta/JavaConstant;I)Ljdk/vm/ci/meta/JavaConstant;
astore 6
start local 6 6: aload 0
checkcast org.graalvm.compiler.nodes.ConstantNode
invokevirtual org.graalvm.compiler.nodes.ConstantNode.isDefaultStable:()Z
istore 7
start local 7 7: aload 6
ifnull 9
iload 7
ifne 8
aload 6
invokeinterface jdk.vm.ci.meta.JavaConstant.isDefaultForKind:()Z
ifne 9
8: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ConstantReflectionProvider jdk.vm.ci.meta.JavaConstant int jdk.vm.ci.meta.JavaConstant int
StackMap stack:
aload 6
iload 5
iconst_1
isub
iload 7
aload 2
invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;IZLjdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
areturn
end local 7 end local 6 end local 5 end local 4 9: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ConstantReflectionProvider
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 array Lorg/graalvm/compiler/nodes/ValueNode;
0 10 1 index Lorg/graalvm/compiler/nodes/ValueNode;
0 10 2 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 10 3 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
2 9 4 arrayConstant Ljdk/vm/ci/meta/JavaConstant;
4 9 5 stableDimension I
6 9 6 constant Ljdk/vm/ci/meta/JavaConstant;
7 9 7 isDefaultStable Z
MethodParameters:
Name Flags
array
index
metaAccess
constantReflection
}
SourceFile: "LoadIndexedNode.java"
InnerClasses:
public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_8:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_8:Lorg/graalvm/compiler/nodeinfo/NodeSize;)