public class org.graalvm.compiler.loop.DerivedScaledInductionVariable extends org.graalvm.compiler.loop.DerivedInductionVariable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.loop.DerivedScaledInductionVariable
super_class: org.graalvm.compiler.loop.DerivedInductionVariable
{
private final org.graalvm.compiler.nodes.ValueNode scale;
descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.nodes.ValueNode value;
descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.loop.InductionVariable, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.loop.DerivedInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;)V
1: aload 0
aload 3
putfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
2: aload 0
aload 4
putfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.value:Lorg/graalvm/compiler/nodes/ValueNode;
3: return
end local 4 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/loop/DerivedScaledInductionVariable;
0 4 1 loop Lorg/graalvm/compiler/loop/LoopEx;
0 4 2 base Lorg/graalvm/compiler/loop/InductionVariable;
0 4 3 scale Lorg/graalvm/compiler/nodes/ValueNode;
0 4 4 value Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
loop
base
scale
value
public void <init>(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.loop.InductionVariable, org.graalvm.compiler.nodes.calc.NegateNode);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/calc/NegateNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.loop.DerivedInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;)V
1: aload 0
aload 3
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.calc.NegateNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
ldc -1
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.NegateNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
putfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
2: aload 0
aload 3
putfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.value:Lorg/graalvm/compiler/nodes/ValueNode;
3: return
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/loop/DerivedScaledInductionVariable;
0 4 1 loop Lorg/graalvm/compiler/loop/LoopEx;
0 4 2 base Lorg/graalvm/compiler/loop/InductionVariable;
0 4 3 value Lorg/graalvm/compiler/nodes/calc/NegateNode;
MethodParameters:
Name Flags
loop
base
value
public org.graalvm.compiler.nodes.ValueNode getScale();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public org.graalvm.compiler.nodes.ValueNode valueNode();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.value:Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public org.graalvm.compiler.loop.InductionVariable$Direction direction();
descriptor: ()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: org.graalvm.compiler.loop.InductionVariable$Direction
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
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;
astore 2
start local 2 4: aload 2
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 10
5: aload 2
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 3
start local 3 6: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isStrictlyPositive:()Z
ifeq 8
7: aload 1
areturn
8: StackMap locals: org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.IntegerStamp
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isStrictlyNegative:()Z
ifeq 10
9: aload 1
invokevirtual org.graalvm.compiler.loop.InductionVariable$Direction.opposite:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
areturn
end local 3 10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
1 11 1 baseDirection Lorg/graalvm/compiler/loop/InductionVariable$Direction;
4 11 2 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
6 10 3 integerStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
public org.graalvm.compiler.nodes.ValueNode initNode();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.DerivedScaledInductionVariable.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.initNode:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.loop.MathUtil.mul:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public org.graalvm.compiler.nodes.ValueNode strideNode();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.DerivedScaledInductionVariable.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.strideNode:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.loop.MathUtil.mul:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public boolean isConstantInit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 1
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.isConstantInit:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public boolean isConstantStride();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 1
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.isConstantStride:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public long constantInit();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.constantInit:()J
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lmul
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public long constantStride();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.constantStride:()J
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lmul
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public org.graalvm.compiler.nodes.ValueNode extremumNode(boolean, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (ZLorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.loop.DerivedScaledInductionVariable.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
iload 1
aload 2
invokevirtual org.graalvm.compiler.loop.InductionVariable.extremumNode:(ZLorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
aload 0
invokevirtual org.graalvm.compiler.loop.DerivedScaledInductionVariable.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.IntegerConvertNode.convert:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.loop.MathUtil.mul:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
0 1 1 assumePositiveTripCount Z
0 1 2 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
assumePositiveTripCount
stamp
public org.graalvm.compiler.nodes.ValueNode exitValueNode();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.DerivedScaledInductionVariable.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.exitValueNode:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.loop.MathUtil.mul:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public boolean isConstantExtremum();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 1
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.isConstantExtremum:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public long constantExtremum();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.constantExtremum:()J
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lmul
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public void deleteUnusedNodes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "DerivedScaleInductionVariable base (%s) %s %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.base:Lorg/graalvm/compiler/loop/InductionVariable;
aastore
dup
iconst_1
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.value:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.getNodeClass:()Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.graph.NodeClass.shortName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 0
getfield org.graalvm.compiler.loop.DerivedScaledInductionVariable.scale:Lorg/graalvm/compiler/nodes/ValueNode;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DerivedScaledInductionVariable;
}
SourceFile: "DerivedScaledInductionVariable.java"
InnerClasses:
public final Direction = org.graalvm.compiler.loop.InductionVariable$Direction of org.graalvm.compiler.loop.InductionVariable