public class org.graalvm.compiler.replacements.nodes.ProfileBooleanNode extends org.graalvm.compiler.replacements.nodes.MacroStateSplitNode implements org.graalvm.compiler.graph.spi.Simplifiable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.nodes.ProfileBooleanNode
super_class: org.graalvm.compiler.replacements.nodes.MacroStateSplitNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.replacements.nodes.ProfileBooleanNode> TYPE;
descriptor: Lorg/graalvm/compiler/graph/NodeClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/replacements/nodes/ProfileBooleanNode;>;
private final jdk.vm.ci.meta.ConstantReflectionProvider constantProvider;
descriptor: Ljdk/vm/ci/meta/ConstantReflectionProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/replacements/nodes/ProfileBooleanNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.meta.ConstantReflectionProvider, org.graalvm.compiler.replacements.nodes.MacroNode$MacroParams);
descriptor: (Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/replacements/nodes/MacroNode$MacroParams;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getstatic org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
aload 2
invokespecial org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/replacements/nodes/MacroNode$MacroParams;)V
1: aload 0
aload 1
putfield org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.constantProvider:Ljdk/vm/ci/meta/ConstantReflectionProvider;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/nodes/ProfileBooleanNode;
0 3 1 constantProvider Ljdk/vm/ci/meta/ConstantReflectionProvider;
0 3 2 p Lorg/graalvm/compiler/replacements/nodes/MacroNode$MacroParams;
MethodParameters:
Name Flags
constantProvider
p
org.graalvm.compiler.nodes.ValueNode getResult();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.getArgument:(I)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/nodes/ProfileBooleanNode;
org.graalvm.compiler.nodes.ValueNode getCounters();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.getArgument:(I)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/nodes/ProfileBooleanNode;
public void simplify(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.getResult:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 2
start local 2 1: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 5
2: aload 0
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
3: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
4: return
5: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.getCounters:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 6: aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 38
7: aload 2
astore 4
start local 4 8: aload 0
getfield org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.constantProvider:Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
checkcast jdk.vm.ci.meta.JavaConstant
iconst_2
invokestatic org.graalvm.compiler.nodes.util.ConstantReflectionUtil.loadIntArrayConstant:(Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/JavaConstant;I)[I
astore 5
start local 5 9: aload 5
ifnull 36
aload 5
arraylength
iconst_2
if_icmpne 36
10: aload 5
iconst_0
iaload
istore 6
start local 6 11: aload 5
iconst_1
iaload
istore 7
start local 7 12: iload 7
iload 6
iadd
istore 8
start local 8 13: iload 8
ifne 22
14: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
15: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
16: new org.graalvm.compiler.nodes.FixedGuardNode
dup
invokestatic org.graalvm.compiler.nodes.LogicConstantNode.contradiction:()Lorg/graalvm/compiler/nodes/LogicConstantNode;
getstatic jdk.vm.ci.meta.DeoptimizationReason.TransferToInterpreter:Ljdk/vm/ci/meta/DeoptimizationReason;
getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
17: iconst_0
18: invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;Z)V
19: invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
20: invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
21: goto 36
StackMap locals: org.graalvm.compiler.replacements.nodes.ProfileBooleanNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int[] int int int
StackMap stack:
22: iload 6
ifeq 23
iload 7
ifne 36
23: StackMap locals:
StackMap stack:
iload 6
ifne 24
iconst_1
goto 25
StackMap locals:
StackMap stack:
24: iconst_0
StackMap locals:
StackMap stack: int
25: istore 9
start local 9 26: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
27: aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
aconst_null
aload 2
28: iload 9
ifeq 29
iconst_0
goto 30
StackMap locals: org.graalvm.compiler.replacements.nodes.ProfileBooleanNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int[] int int int int
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ConstantReflectionProvider jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.options.OptionValues null org.graalvm.compiler.nodes.ValueNode
29: iconst_1
StackMap locals: org.graalvm.compiler.replacements.nodes.ProfileBooleanNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int[] int int int int
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ConstantReflectionProvider jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.options.OptionValues null org.graalvm.compiler.nodes.ValueNode int
30: invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(Z)Lorg/graalvm/compiler/nodes/ConstantNode;
31: getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
32: invokestatic org.graalvm.compiler.nodes.calc.IntegerEqualsNode.create:(Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
33: invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 10
start local 10 34: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.FixedGuardNode
dup
aload 10
getstatic jdk.vm.ci.meta.DeoptimizationReason.UnreachedCode:Ljdk/vm/ci/meta/DeoptimizationReason;
getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
iconst_1
invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;Z)V
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.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
35: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
iload 9
invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(Z)Lorg/graalvm/compiler/nodes/ConstantNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 4
end local 10 end local 9 end local 8 end local 7 end local 6 36: StackMap locals: org.graalvm.compiler.replacements.nodes.ProfileBooleanNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int[]
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
37: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.ProfileBooleanNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
end local 5 end local 4 38: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/graalvm/compiler/replacements/nodes/ProfileBooleanNode;
0 39 1 b Lorg/graalvm/compiler/graph/spi/SimplifierTool;
1 39 2 result Lorg/graalvm/compiler/nodes/ValueNode;
6 39 3 counters Lorg/graalvm/compiler/nodes/ValueNode;
8 38 4 newResult Lorg/graalvm/compiler/nodes/ValueNode;
9 38 5 counts [I
11 36 6 falseCount I
12 36 7 trueCount I
13 36 8 totalCount I
26 36 9 expected Z
34 36 10 condition Lorg/graalvm/compiler/nodes/LogicNode;
MethodParameters:
Name Flags
b
}
SourceFile: "ProfileBooleanNode.java"
InnerClasses:
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
public MacroParams = org.graalvm.compiler.replacements.nodes.MacroNode$MacroParams of org.graalvm.compiler.replacements.nodes.MacroNode
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeSize;)