public class org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance implements org.graalvm.compiler.nodes.cfg.ControlFlowGraph$RecursiveVisitor<org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance
super_class: java.lang.Object
{
protected final org.graalvm.compiler.graph.NodeMap<org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement> map;
descriptor: Lorg/graalvm/compiler/graph/NodeMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeMap<Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;>;
protected final org.graalvm.compiler.core.common.cfg.BlockMap<java.util.List<org.graalvm.compiler.graph.Node>> blockToNodes;
descriptor: Lorg/graalvm/compiler/core/common/cfg/BlockMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lorg/graalvm/compiler/core/common/cfg/BlockMap<Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;>;
protected final org.graalvm.compiler.graph.NodeMap<org.graalvm.compiler.nodes.cfg.Block> nodeToBlock;
descriptor: Lorg/graalvm/compiler/graph/NodeMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeMap<Lorg/graalvm/compiler/nodes/cfg/Block;>;
protected final org.graalvm.compiler.graph.spi.CanonicalizerTool tool;
descriptor: Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.graalvm.compiler.graph.NodeStack undoOperations;
descriptor: Lorg/graalvm/compiler/graph/NodeStack;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.graalvm.compiler.nodes.StructuredGraph graph;
descriptor: Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.graalvm.compiler.debug.DebugContext debug;
descriptor: Lorg/graalvm/compiler/debug/DebugContext;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.MergeNode, jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement>> mergeMaps;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/MergeNode;Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$PhiInfoElement;>;>;
protected final java.util.ArrayDeque<org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition> conditions;
descriptor: Ljava/util/ArrayDeque;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/ArrayDeque<Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardedCondition;>;
private java.util.Deque<org.graalvm.compiler.nodes.DeoptimizingGuard> pendingTests;
descriptor: Ljava/util/Deque;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Deque<Lorg/graalvm/compiler/nodes/DeoptimizingGuard;>;
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/phases/common/ConditionalEliminationPhase;
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.phases.common.ConditionalEliminationPhase$Instance.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.core.common.cfg.BlockMap<java.util.List<org.graalvm.compiler.graph.Node>>, org.graalvm.compiler.graph.NodeMap<org.graalvm.compiler.nodes.cfg.Block>, org.graalvm.compiler.phases.tiers.PhaseContext);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/core/common/cfg/BlockMap;Lorg/graalvm/compiler/graph/NodeMap;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
3: aload 0
aload 2
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.blockToNodes:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
4: aload 0
aload 3
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nodeToBlock:Lorg/graalvm/compiler/graph/NodeMap;
5: aload 0
new org.graalvm.compiler.graph.NodeStack
dup
invokespecial org.graalvm.compiler.graph.NodeStack.<init>:()V
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.undoOperations:Lorg/graalvm/compiler/graph/NodeStack;
6: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createNodeMap:()Lorg/graalvm/compiler/graph/NodeMap;
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.map:Lorg/graalvm/compiler/graph/NodeMap;
7: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.pendingTests:Ljava/util/Deque;
8: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.conditions:Ljava/util/ArrayDeque;
9: aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 4
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 4
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
iconst_0
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
10: aload 4
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getLowerer:()Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
11: invokestatic org.graalvm.compiler.nodes.util.GraphUtil.getDefaultSimplifier:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;ZLjdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;)Lorg/graalvm/compiler/graph/spi/SimplifierTool;
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tool:Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
12: aload 0
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:()Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.mergeMaps:Ljdk/internal/vm/compiler/collections/EconomicMap;
13: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 14 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 14 2 blockToNodes Lorg/graalvm/compiler/core/common/cfg/BlockMap<Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;>;
0 14 3 nodeToBlock Lorg/graalvm/compiler/graph/NodeMap<Lorg/graalvm/compiler/nodes/cfg/Block;>;
0 14 4 context Lorg/graalvm/compiler/phases/tiers/PhaseContext;
Signature: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/core/common/cfg/BlockMap<Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;>;Lorg/graalvm/compiler/graph/NodeMap<Lorg/graalvm/compiler/nodes/cfg/Block;>;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)V
MethodParameters:
Name Flags
graph
blockToNodes
nodeToBlock
context
protected void processConditionAnchor(org.graalvm.compiler.nodes.ConditionAnchorNode);
descriptor: (Lorg/graalvm/compiler/nodes/ConditionAnchorNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.ConditionAnchorNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
invokedynamic rewire(Lorg/graalvm/compiler/nodes/ConditionAnchorNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
org/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance.lambda$0(Lorg/graalvm/compiler/nodes/ConditionAnchorNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z (6)
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tryProveCondition:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 2 1 node Lorg/graalvm/compiler/nodes/ConditionAnchorNode;
MethodParameters:
Name Flags
node
protected void processGuard(org.graalvm.compiler.nodes.GuardNode);
descriptor: (Lorg/graalvm/compiler/nodes/GuardNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
aload 1
invokedynamic rewire(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;Lorg/graalvm/compiler/nodes/GuardNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
org/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance.lambda$1(Lorg/graalvm/compiler/nodes/GuardNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z (7)
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tryProveGuardCondition:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
1: ifne 3
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.isNegated:()Z
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewCondition:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/extended/GuardingNode;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 4 1 node Lorg/graalvm/compiler/nodes/GuardNode;
MethodParameters:
Name Flags
node
protected void processFixedGuard(org.graalvm.compiler.nodes.FixedGuardNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedGuardNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
aload 1
invokedynamic rewire(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;Lorg/graalvm/compiler/nodes/FixedGuardNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
org/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance.lambda$2(Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z (7)
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tryProveGuardCondition:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
1: ifne 3
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.isNegated:()Z
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewCondition:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/extended/GuardingNode;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 4 1 node Lorg/graalvm/compiler/nodes/FixedGuardNode;
MethodParameters:
Name Flags
node
protected void processIf(org.graalvm.compiler.nodes.IfNode);
descriptor: (Lorg/graalvm/compiler/nodes/IfNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
aload 1
invokedynamic rewire(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;Lorg/graalvm/compiler/nodes/IfNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
org/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance.lambda$3(Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z (7)
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tryProveCondition:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 2 1 node Lorg/graalvm/compiler/nodes/IfNode;
MethodParameters:
Name Flags
node
public org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks enter(org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/nodes/cfg/Block;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Marks;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.undoOperations:Lorg/graalvm/compiler/graph/NodeStack;
invokevirtual org.graalvm.compiler.graph.NodeStack.size:()I
istore 2
start local 2 1: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.conditions:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.size:()I
istore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "[Pre Processing block %s]"
aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
3: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.pendingTests:Ljava/util/Deque;
invokeinterface java.util.Deque.clear:()V
4: aload 0
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processNodes:(Lorg/graalvm/compiler/nodes/cfg/Block;)V
5: new org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks
dup
iload 2
iload 3
invokespecial org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks.<init>:(II)V
areturn
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/phases/common/ConditionalEliminationPhase$Instance;
0 6 1 block Lorg/graalvm/compiler/nodes/cfg/Block;
1 6 2 infoElementsMark I
2 6 3 conditionsMark I
MethodParameters:
Name Flags
block
protected void processNodes(org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/nodes/cfg/Block;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.blockToNodes:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
ifnull 7
1: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.blockToNodes:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.cfg.Block top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
ifeq 5
4: aload 0
aload 2
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processNode:(Lorg/graalvm/compiler/graph/Node;)V
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: goto 8
7: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processBlock:(Lorg/graalvm/compiler/nodes/cfg/Block;)V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 9 1 block Lorg/graalvm/compiler/nodes/cfg/Block;
3 5 2 n Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
block
private void processBlock(org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/nodes/cfg/Block;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 2
start local 2 1: aload 1
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "[Processing block %s]"
aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
3: goto 9
4: StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.FixedNode.isDeleted:()Z
ifne 5
aload 3
invokevirtual org.graalvm.compiler.nodes.FixedNode.isDeleted:()Z
ifeq 6
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 2
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 4
start local 4 7: aload 0
aload 2
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processNode:(Lorg/graalvm/compiler/graph/Node;)V
8: aload 4
astore 2
end local 4 9: StackMap locals:
StackMap stack:
aload 2
aload 3
if_acmpne 4
10: aload 3
invokevirtual org.graalvm.compiler.nodes.FixedNode.isAlive:()Z
ifeq 12
11: aload 0
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processNode:(Lorg/graalvm/compiler/graph/Node;)V
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/phases/common/ConditionalEliminationPhase$Instance;
0 13 1 block Lorg/graalvm/compiler/nodes/cfg/Block;
1 13 2 n Lorg/graalvm/compiler/nodes/FixedNode;
2 13 3 endNode Lorg/graalvm/compiler/nodes/FixedNode;
7 9 4 next Lorg/graalvm/compiler/nodes/FixedNode;
MethodParameters:
Name Flags
block
protected void processNode(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 1
invokevirtual org.graalvm.compiler.graph.Node.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 4
start local 4 2: aload 1
instanceof org.graalvm.compiler.nodes.spi.NodeWithState
ifeq 4
aload 1
instanceof org.graalvm.compiler.nodes.extended.GuardingNode
ifne 4
3: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.pendingTests:Ljava/util/Deque;
invokeinterface java.util.Deque.clear:()V
4: StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.MergeNode
ifeq 6
5: aload 0
aload 1
checkcast org.graalvm.compiler.nodes.MergeNode
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.introducePisForPhis:(Lorg/graalvm/compiler/nodes/MergeNode;)V
6: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.AbstractBeginNode
ifeq 12
7: aload 1
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 10
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasValueProxies:()Z
ifeq 10
8: aload 4
ifnull 9
aload 4
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
9: StackMap locals:
StackMap stack:
return
10: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processAbstractBegin:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
11: goto 26
StackMap locals:
StackMap stack:
12: aload 1
instanceof org.graalvm.compiler.nodes.FixedGuardNode
ifeq 15
13: aload 0
aload 1
checkcast org.graalvm.compiler.nodes.FixedGuardNode
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processFixedGuard:(Lorg/graalvm/compiler/nodes/FixedGuardNode;)V
14: goto 26
StackMap locals:
StackMap stack:
15: aload 1
instanceof org.graalvm.compiler.nodes.GuardNode
ifeq 18
16: aload 0
aload 1
checkcast org.graalvm.compiler.nodes.GuardNode
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processGuard:(Lorg/graalvm/compiler/nodes/GuardNode;)V
17: goto 26
StackMap locals:
StackMap stack:
18: aload 1
instanceof org.graalvm.compiler.nodes.ConditionAnchorNode
ifeq 21
19: aload 0
aload 1
checkcast org.graalvm.compiler.nodes.ConditionAnchorNode
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processConditionAnchor:(Lorg/graalvm/compiler/nodes/ConditionAnchorNode;)V
20: goto 26
StackMap locals:
StackMap stack:
21: aload 1
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 24
22: aload 0
aload 1
checkcast org.graalvm.compiler.nodes.IfNode
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processIf:(Lorg/graalvm/compiler/nodes/IfNode;)V
23: goto 26
StackMap locals:
StackMap stack:
24: aload 1
instanceof org.graalvm.compiler.nodes.EndNode
ifeq 26
25: aload 0
aload 1
checkcast org.graalvm.compiler.nodes.EndNode
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
26: StackMap locals:
StackMap stack:
aload 4
ifnull 32
aload 4
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 2
aload 4
ifnull 28
aload 4
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 4 StackMap locals:
StackMap stack:
28: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 3
aload 2
ifnonnull 30
aload 3
astore 2
goto 31
StackMap locals:
StackMap stack:
30: aload 2
aload 3
if_acmpeq 31
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 2
athrow
32: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 33 1 node Lorg/graalvm/compiler/graph/Node;
2 28 4 closeable Lorg/graalvm/compiler/debug/DebugCloseable;
Exception table:
from to target type
2 8 27 any
10 26 27 any
1 9 29 any
10 29 29 any
MethodParameters:
Name Flags
node
protected void introducePisForPhis(org.graalvm.compiler.nodes.MergeNode);
descriptor: (Lorg/graalvm/compiler/nodes/MergeNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=15, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.mergeMaps:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.internal.vm.compiler.collections.EconomicMap
astore 2
start local 2 1: aload 2
ifnull 72
2: aload 2
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getEntries:()Ljdk/internal/vm/compiler/collections/MapCursor;
astore 3
start local 3 3: goto 71
4: StackMap locals: jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.MapCursor
StackMap stack:
aload 3
invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getKey:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValuePhiNode
astore 4
start local 4 5: getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.$assertionsDisabled:Z
ifne 6
aload 4
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.isAlive:()Z
ifne 6
aload 4
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.isDeleted:()Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.isDeleted:()Z
ifeq 8
7: goto 71
8: StackMap locals:
StackMap stack:
aload 3
invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getValue:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement
astore 5
start local 5 9: aconst_null
astore 6
start local 6 10: iconst_0
istore 7
start local 7 11: goto 22
12: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement org.graalvm.compiler.core.common.type.Stamp int
StackMap stack:
aload 4
iload 7
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 13: aload 8
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 9
start local 9 14: aload 5
aload 1
iload 7
invokevirtual org.graalvm.compiler.nodes.MergeNode.forwardEndAt:(I)Lorg/graalvm/compiler/nodes/EndNode;
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement.get:(Lorg/graalvm/compiler/nodes/EndNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 10
start local 10 15: aload 10
ifnull 17
16: aload 9
aload 10
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 9
17: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 6
ifnonnull 20
18: aload 9
astore 6
19: goto 21
20: StackMap locals:
StackMap stack:
aload 6
aload 9
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
end local 10 end local 9 end local 8 21: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
22: iload 7
aload 4
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueCount:()I
if_icmplt 12
end local 7 23: aload 4
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 7
start local 7 24: aload 7
aload 6
invokevirtual org.graalvm.compiler.core.common.type.Stamp.tryImproveWith:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
ifnull 71
25: iconst_0
istore 8
start local 8 26: aload 6
instanceof org.graalvm.compiler.core.common.type.ObjectStamp
ifeq 29
27: iconst_1
istore 8
28: goto 53
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.MergeNode jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.MapCursor org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp int
StackMap stack:
29: aload 6
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 50
30: aload 6
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 9
start local 9 31: aload 7
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 10
start local 10 32: aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isPositive:()Z
aload 10
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isPositive:()Z
if_icmpeq 35
33: iconst_1
istore 8
34: goto 53
StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp
StackMap stack:
35: aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isNegative:()Z
aload 10
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isNegative:()Z
if_icmpeq 38
36: iconst_1
istore 8
37: goto 53
StackMap locals:
StackMap stack:
38: aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isStrictlyPositive:()Z
aload 10
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isStrictlyPositive:()Z
if_icmpeq 41
39: iconst_1
istore 8
40: goto 53
StackMap locals:
StackMap stack:
41: aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isStrictlyNegative:()Z
aload 10
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isStrictlyNegative:()Z
if_icmpeq 44
42: iconst_1
istore 8
43: goto 53
StackMap locals:
StackMap stack:
44: aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.asConstant:()Ljdk/vm/ci/meta/JavaConstant;
ifnull 47
45: iconst_1
istore 8
46: goto 53
StackMap locals:
StackMap stack:
47: aload 7
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isUnrestricted:()Z
ifeq 53
48: iconst_1
istore 8
end local 10 end local 9 49: goto 53
50: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
ifnull 51
iconst_1
goto 52
StackMap locals:
StackMap stack:
51: iconst_0
StackMap locals:
StackMap stack: int
52: istore 8
53: StackMap locals:
StackMap stack:
iload 8
ifeq 71
54: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 6
aload 1
invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValuePhiNode
astore 9
start local 9 55: iconst_0
istore 10
start local 10 56: goto 68
57: StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode int
StackMap stack:
aload 4
iload 10
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 11
start local 11 58: aload 6
aload 11
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.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 66
59: aload 5
aload 1
iload 10
invokevirtual org.graalvm.compiler.nodes.MergeNode.forwardEndAt:(I)Lorg/graalvm/compiler/nodes/EndNode;
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement.get:(Lorg/graalvm/compiler/nodes/EndNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 12
start local 12 60: getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.$assertionsDisabled:Z
ifne 61
aload 12
ifnonnull 61
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
61: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 12
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
astore 13
start local 13 62: aload 12
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 14
start local 14 63: aload 14
ifnonnull 65
64: aload 11
astore 14
65: StackMap locals: org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 14
aload 13
aload 12
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.guard:Lorg/graalvm/compiler/nodes/extended/GuardingNode;
checkcast org.graalvm.compiler.nodes.ValueNode
invokestatic org.graalvm.compiler.nodes.PiNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 11
end local 14 end local 13 end local 12 66: StackMap locals:
StackMap stack:
aload 9
aload 11
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
end local 11 67: iinc 10 1
StackMap locals:
StackMap stack:
68: iload 10
aload 4
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueCount:()I
if_icmplt 57
end local 10 69: getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase.counterPhiStampsImproved:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
70: aload 4
aload 9
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 71: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.MergeNode jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.MapCursor
StackMap stack:
aload 3
invokeinterface jdk.internal.vm.compiler.collections.MapCursor.advance:()Z
ifne 4
end local 3 72: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 73 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 73 1 merge Lorg/graalvm/compiler/nodes/MergeNode;
1 73 2 mergeMap Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$PhiInfoElement;>;
3 72 3 entries Ljdk/internal/vm/compiler/collections/MapCursor<Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$PhiInfoElement;>;
5 71 4 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
9 71 5 phiInfoElements Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$PhiInfoElement;
10 71 6 bestPossibleStamp Lorg/graalvm/compiler/core/common/type/Stamp;
11 23 7 i I
13 21 8 valueAt Lorg/graalvm/compiler/nodes/ValueNode;
14 21 9 curBestStamp Lorg/graalvm/compiler/core/common/type/Stamp;
15 21 10 infoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
24 71 7 oldStamp Lorg/graalvm/compiler/core/common/type/Stamp;
26 71 8 allow Z
31 49 9 integerStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
32 49 10 oldIntegerStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
55 71 9 newPhi Lorg/graalvm/compiler/nodes/ValuePhiNode;
56 69 10 i I
58 67 11 valueAt Lorg/graalvm/compiler/nodes/ValueNode;
60 66 12 infoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
62 66 13 curBestStamp Lorg/graalvm/compiler/core/common/type/Stamp;
63 66 14 input Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
merge
protected void processEnd(org.graalvm.compiler.nodes.EndNode);
descriptor: (Lorg/graalvm/compiler/nodes/EndNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=11, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.EndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
astore 2
start local 2 1: aload 2
instanceof org.graalvm.compiler.nodes.MergeNode
ifeq 23
2: aload 2
checkcast org.graalvm.compiler.nodes.MergeNode
astore 3
start local 3 3: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.mergeMaps:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 3
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.internal.vm.compiler.collections.EconomicMap
astore 4
start local 4 4: aload 3
invokevirtual org.graalvm.compiler.nodes.MergeNode.valuePhis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 6
goto 22
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.MergeNode jdk.internal.vm.compiler.collections.EconomicMap top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValuePhiNode
astore 5
start local 5 6: aload 5
aload 1
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 7: aload 0
aload 7
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 8
start local 8 8: goto 21
9: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.MergeNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.ValuePhiNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
astore 9
start local 9 10: aload 5
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 9
invokevirtual org.graalvm.compiler.core.common.type.Stamp.tryImproveWith:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
ifnull 20
11: aload 4
ifnonnull 14
12: invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:()Ljdk/internal/vm/compiler/collections/EconomicMap;
astore 4
13: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.mergeMaps:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 3
aload 4
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: StackMap locals: org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
aload 4
aload 5
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement
astore 10
start local 10 15: aload 10
ifnonnull 18
16: new org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement
dup
invokespecial org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement.<init>:()V
astore 10
17: aload 4
aload 5
aload 10
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement
StackMap stack:
aload 10
aload 1
aload 8
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement.set:(Lorg/graalvm/compiler/nodes/EndNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)V
19: goto 22
end local 10 20: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 8
end local 9 21: StackMap locals:
StackMap stack:
aload 8
ifnonnull 9
end local 8 end local 7 end local 5 22: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.MergeNode jdk.internal.vm.compiler.collections.EconomicMap top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 4 end local 3 23: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractMergeNode
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 24 1 end Lorg/graalvm/compiler/nodes/EndNode;
1 24 2 abstractMerge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
3 23 3 merge Lorg/graalvm/compiler/nodes/MergeNode;
4 23 4 mergeMap Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$PhiInfoElement;>;
6 22 5 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
7 22 7 valueAt Lorg/graalvm/compiler/nodes/ValueNode;
8 22 8 infoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
10 21 9 newStamp Lorg/graalvm/compiler/core/common/type/Stamp;
15 20 10 phiInfoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$PhiInfoElement;
MethodParameters:
Name Flags
end
protected void registerNewCondition(org.graalvm.compiler.nodes.LogicNode, boolean, org.graalvm.compiler.nodes.extended.GuardingNode);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/extended/GuardingNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
instanceof org.graalvm.compiler.nodes.UnaryOpLogicNode
ifeq 7
1: aload 1
checkcast org.graalvm.compiler.nodes.UnaryOpLogicNode
astore 4
start local 4 2: aload 4
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 3: aload 5
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.maybeMultipleUsages:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 25
4: aload 4
iload 2
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.getSucceedingStampForValue:(Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
start local 6 5: aload 0
aload 5
aload 6
aload 3
iconst_1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Z)V
end local 6 end local 5 end local 4 6: goto 25
StackMap locals:
StackMap stack:
7: aload 1
instanceof org.graalvm.compiler.nodes.BinaryOpLogicNode
ifeq 25
8: aload 1
checkcast org.graalvm.compiler.nodes.BinaryOpLogicNode
astore 4
start local 4 9: aload 4
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 10: aload 4
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 11: aload 5
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 14
aload 5
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.maybeMultipleUsages:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 14
12: aload 4
iload 2
aload 5
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getSucceedingStampForX:(ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 7
start local 7 13: aload 0
aload 5
aload 7
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
end local 7 14: StackMap locals: org.graalvm.compiler.nodes.BinaryOpLogicNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 17
aload 6
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.maybeMultipleUsages:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 17
15: aload 4
iload 2
aload 5
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getSucceedingStampForY:(ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 7
start local 7 16: aload 0
aload 6
aload 7
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
end local 7 17: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
ifeq 25
aload 3
instanceof org.graalvm.compiler.nodes.DeoptimizingGuard
ifeq 25
iload 2
ifne 25
18: aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 25
aload 5
instanceof org.graalvm.compiler.nodes.calc.AndNode
ifeq 25
19: aload 5
checkcast org.graalvm.compiler.nodes.calc.AndNode
astore 7
start local 7 20: aload 7
invokevirtual org.graalvm.compiler.nodes.calc.AndNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 21: aload 7
invokevirtual org.graalvm.compiler.nodes.calc.AndNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
if_acmpne 25
aload 8
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.maybeMultipleUsages:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 25
22: aload 5
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;
invokestatic org.graalvm.compiler.core.common.type.ArithmeticOpTable.forStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable.getOr:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
astore 9
start local 9 23: aload 9
aload 8
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 10
start local 10 24: aload 0
aload 8
aload 10
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 25: StackMap locals:
StackMap stack:
aload 3
instanceof org.graalvm.compiler.nodes.DeoptimizingGuard
ifeq 28
26: getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.$assertionsDisabled:Z
ifne 27
aload 3
checkcast org.graalvm.compiler.nodes.DeoptimizingGuard
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
if_acmpeq 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.pendingTests:Ljava/util/Deque;
aload 3
checkcast org.graalvm.compiler.nodes.DeoptimizingGuard
invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
28: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerCondition:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/extended/GuardingNode;)V
29: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 30 1 condition Lorg/graalvm/compiler/nodes/LogicNode;
0 30 2 negated Z
0 30 3 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
2 6 4 unaryLogicNode Lorg/graalvm/compiler/nodes/UnaryOpLogicNode;
3 6 5 value Lorg/graalvm/compiler/nodes/ValueNode;
5 6 6 newStamp Lorg/graalvm/compiler/core/common/type/Stamp;
9 25 4 binaryOpLogicNode Lorg/graalvm/compiler/nodes/BinaryOpLogicNode;
10 25 5 x Lorg/graalvm/compiler/nodes/ValueNode;
11 25 6 y Lorg/graalvm/compiler/nodes/ValueNode;
13 14 7 newStampX Lorg/graalvm/compiler/core/common/type/Stamp;
16 17 7 newStampY Lorg/graalvm/compiler/core/common/type/Stamp;
20 25 7 and Lorg/graalvm/compiler/nodes/calc/AndNode;
21 25 8 andX Lorg/graalvm/compiler/nodes/ValueNode;
23 25 9 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp$Or;>;
24 25 10 newStampX Lorg/graalvm/compiler/core/common/type/IntegerStamp;
MethodParameters:
Name Flags
condition
negated
guard
jdk.internal.vm.compiler.collections.Pair<org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement, org.graalvm.compiler.core.common.type.Stamp> recursiveFoldStamp(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/collections/Pair;
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.graalvm.compiler.nodes.calc.UnaryNode
ifeq 11
1: aload 1
checkcast org.graalvm.compiler.nodes.calc.UnaryNode
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.compiler.nodes.calc.UnaryNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 3: aload 0
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
start local 4 4: goto 9
5: StackMap locals: org.graalvm.compiler.nodes.calc.UnaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 2
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.calc.UnaryNode.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 5
start local 5 6: aload 5
ifnull 8
7: aload 4
aload 5
invokestatic jdk.internal.vm.compiler.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Ljdk/internal/vm/compiler/collections/Pair;
areturn
8: StackMap locals: org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
end local 5 9: StackMap locals:
StackMap stack:
aload 4
ifnonnull 5
end local 4 end local 3 end local 2 10: goto 23
StackMap locals:
StackMap stack:
11: aload 1
instanceof org.graalvm.compiler.nodes.calc.BinaryNode
ifeq 23
12: aload 1
checkcast org.graalvm.compiler.nodes.calc.BinaryNode
astore 2
start local 2 13: aload 2
invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 14: aload 2
invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 15: aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 23
16: aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 5
start local 5 17: goto 22
18: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 2
aload 5
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
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.nodes.calc.BinaryNode.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
start local 6 19: aload 6
ifnull 21
20: aload 5
aload 6
invokestatic jdk.internal.vm.compiler.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Ljdk/internal/vm/compiler/collections/Pair;
areturn
21: StackMap locals: org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
aload 0
aload 5
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 5
end local 6 22: StackMap locals:
StackMap stack:
aload 5
ifnonnull 18
end local 5 end local 4 end local 3 end local 2 23: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.graph.Node
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 24 1 node Lorg/graalvm/compiler/graph/Node;
2 10 2 unary Lorg/graalvm/compiler/nodes/calc/UnaryNode;
3 10 3 value Lorg/graalvm/compiler/nodes/ValueNode;
4 10 4 infoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
6 9 5 result Lorg/graalvm/compiler/core/common/type/Stamp;
13 23 2 binary Lorg/graalvm/compiler/nodes/calc/BinaryNode;
14 23 3 y Lorg/graalvm/compiler/nodes/ValueNode;
15 23 4 x Lorg/graalvm/compiler/nodes/ValueNode;
17 23 5 infoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
19 22 6 result Lorg/graalvm/compiler/core/common/type/Stamp;
Signature: (Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/collections/Pair<Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;Lorg/graalvm/compiler/core/common/type/Stamp;>;
MethodParameters:
Name Flags
node
private static org.graalvm.compiler.core.common.type.Stamp getSafeStamp(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: 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;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
x
private static org.graalvm.compiler.core.common.type.Stamp getOtherSafeStamp(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 1
aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFixedReadPhase:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
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;
areturn
2: StackMap locals:
StackMap stack:
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;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.unrestricted:()Lorg/graalvm/compiler/core/common/type/Stamp;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 x Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
x
jdk.internal.vm.compiler.collections.Pair<org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement, org.graalvm.compiler.core.common.type.Stamp> recursiveFoldStampFromInfo(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/collections/Pair;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.recursiveFoldStamp:(Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/collections/Pair;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 1 1 node Lorg/graalvm/compiler/graph/Node;
Signature: (Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/collections/Pair<Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;Lorg/graalvm/compiler/core/common/type/Stamp;>;
MethodParameters:
Name Flags
node
protected boolean foldPendingTest(org.graalvm.compiler.nodes.DeoptimizingGuard, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer);
descriptor: (Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=14, 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.phases.common.ConditionalEliminationPhase$Instance.pendingTests:Ljava/util/Deque;
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 6
goto 27
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer top java.util.Iterator
StackMap stack:
1: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.DeoptimizingGuard
astore 5
start local 5 2: aload 5
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 7
start local 7 3: getstatic jdk.vm.ci.meta.TriState.UNKNOWN:Ljdk/vm/ci/meta/TriState;
astore 8
start local 8 4: aload 7
instanceof org.graalvm.compiler.nodes.UnaryOpLogicNode
ifeq 9
5: aload 7
checkcast org.graalvm.compiler.nodes.UnaryOpLogicNode
astore 9
start local 9 6: aload 9
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 24
7: aload 9
aload 3
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
end local 9 8: goto 24
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.nodes.DeoptimizingGuard java.util.Iterator org.graalvm.compiler.nodes.LogicNode jdk.vm.ci.meta.TriState
StackMap stack:
9: aload 7
instanceof org.graalvm.compiler.nodes.BinaryOpLogicNode
ifeq 24
10: aload 7
checkcast org.graalvm.compiler.nodes.BinaryOpLogicNode
astore 9
start local 9 11: aload 9
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 10
start local 10 12: aload 9
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 11
start local 11 13: aload 10
aload 2
if_acmpne 16
14: aload 9
aload 3
aload 11
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
15: goto 24
StackMap locals: org.graalvm.compiler.nodes.BinaryOpLogicNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
16: aload 11
aload 2
if_acmpne 19
17: aload 9
aload 10
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
18: goto 24
StackMap locals:
StackMap stack:
19: aload 9
instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
ifeq 24
aload 11
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 24
aload 10
instanceof org.graalvm.compiler.nodes.calc.AndNode
ifeq 24
20: aload 10
checkcast org.graalvm.compiler.nodes.calc.AndNode
astore 12
start local 12 21: aload 12
invokevirtual org.graalvm.compiler.nodes.calc.AndNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 11
if_acmpne 24
aload 12
invokevirtual org.graalvm.compiler.nodes.calc.AndNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 24
22: aload 3
invokestatic org.graalvm.compiler.core.common.type.ArithmeticOpTable.forStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable.getAnd:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
astore 13
start local 13 23: aload 9
aload 13
aload 3
aload 11
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 11
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
end local 13 end local 12 end local 11 end local 10 end local 9 24: StackMap locals:
StackMap stack:
aload 8
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 27
25: aload 0
aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 5
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.canScheduleAbove:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 27
aload 0
aload 1
aload 5
aload 8
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aload 3
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.foldGuard:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/DeoptimizingGuard;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ifeq 27
26: iconst_1
ireturn
end local 8 end local 7 end local 5 27: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
28: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 29 1 thisGuard Lorg/graalvm/compiler/nodes/DeoptimizingGuard;
0 29 2 original Lorg/graalvm/compiler/nodes/ValueNode;
0 29 3 newStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 29 4 rewireGuardFunction Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
2 27 5 pendingGuard Lorg/graalvm/compiler/nodes/DeoptimizingGuard;
3 27 7 pendingCondition Lorg/graalvm/compiler/nodes/LogicNode;
4 27 8 result Ljdk/vm/ci/meta/TriState;
6 8 9 unaryLogicNode Lorg/graalvm/compiler/nodes/UnaryOpLogicNode;
11 24 9 binaryOpLogicNode Lorg/graalvm/compiler/nodes/BinaryOpLogicNode;
12 24 10 x Lorg/graalvm/compiler/nodes/ValueNode;
13 24 11 y Lorg/graalvm/compiler/nodes/ValueNode;
21 24 12 and Lorg/graalvm/compiler/nodes/calc/AndNode;
23 24 13 andOp Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp$And;>;
MethodParameters:
Name Flags
thisGuard
original
newStamp
rewireGuardFunction
private boolean canScheduleAbove(org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nodeToBlock:Lorg/graalvm/compiler/graph/NodeMap;
aload 2
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 4
start local 4 1: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nodeToBlock:Lorg/graalvm/compiler/graph/NodeMap;
aload 1
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 5
start local 5 2: aload 4
ifnull 14
aload 5
ifnull 14
3: aload 4
aload 5
if_acmpne 12
4: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.blockToNodes:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 4
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 10
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.cfg.Block top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 6: aload 6
aload 1
if_acmpne 8
7: iconst_1
ireturn
8: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 6
aload 2
if_acmpne 10
9: goto 14
end local 6 10: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.cfg.Block top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
11: goto 14
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
12: aload 5
aload 4
invokestatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.dominates:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 14
13: iconst_1
ireturn
14: StackMap locals:
StackMap stack:
new org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InputFilter
dup
aload 3
invokespecial org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InputFilter.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
astore 6
start local 6 15: aload 1
aload 6
invokevirtual org.graalvm.compiler.graph.Node.applyInputs:(Lorg/graalvm/compiler/graph/Node$EdgeVisitor;)V
16: aload 6
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InputFilter.ok:Z
ireturn
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 17 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 17 1 n Lorg/graalvm/compiler/graph/Node;
0 17 2 target Lorg/graalvm/compiler/graph/Node;
0 17 3 knownToBeAbove Lorg/graalvm/compiler/nodes/ValueNode;
1 17 4 targetBlock Lorg/graalvm/compiler/nodes/cfg/Block;
2 17 5 testBlock Lorg/graalvm/compiler/nodes/cfg/Block;
6 10 6 fixed Lorg/graalvm/compiler/graph/Node;
15 17 6 v Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InputFilter;
MethodParameters:
Name Flags
n
target
knownToBeAbove
protected boolean foldGuard(org.graalvm.compiler.nodes.DeoptimizingGuard, org.graalvm.compiler.nodes.DeoptimizingGuard, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer);
descriptor: (Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/DeoptimizingGuard;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
invokestatic org.graalvm.compiler.nodes.StaticDeoptimizingNode.mergeActions:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationAction;)Ljdk/vm/ci/meta/DeoptimizationAction;
astore 6
start local 6 1: aload 6
ifnull 6
aload 2
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getSpeculation:()Ljdk/vm/ci/meta/SpeculationLog$Speculation;
aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getSpeculation:()Ljdk/vm/ci/meta/SpeculationLog$Speculation;
if_acmpne 6
2: aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.LogicNode.copyWithInputs:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 7
start local 7 3: aload 1
aload 6
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.setAction:(Ljdk/vm/ci/meta/DeoptimizationAction;)V
4: aload 2
aload 5
aload 1
aload 7
aload 6
invokedynamic rewire(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationAction;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
org/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance.lambda$4(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationAction;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z (6)
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
astore 8
start local 8 5: aload 0
aload 2
iload 3
aconst_null
aload 4
aload 8
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
end local 8 end local 7 6: StackMap locals: jdk.vm.ci.meta.DeoptimizationAction
StackMap stack:
iconst_0
ireturn
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 7 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 7 1 thisGuard Lorg/graalvm/compiler/nodes/DeoptimizingGuard;
0 7 2 otherGuard Lorg/graalvm/compiler/nodes/DeoptimizingGuard;
0 7 3 outcome Z
0 7 4 guardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 7 5 rewireGuardFunction Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
1 7 6 action Ljdk/vm/ci/meta/DeoptimizationAction;
3 6 7 condition Lorg/graalvm/compiler/nodes/LogicNode;
5 6 8 rewirer Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
MethodParameters:
Name Flags
thisGuard
otherGuard
outcome
guardedValueStamp
rewireGuardFunction
protected void registerCondition(org.graalvm.compiler.nodes.LogicNode, boolean, org.graalvm.compiler.nodes.extended.GuardingNode);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/extended/GuardingNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.graalvm.compiler.nodes.LogicNode.hasMoreThanOneUsage:()Z
ifeq 4
1: aload 0
aload 1
iload 2
ifeq 2
invokestatic org.graalvm.compiler.core.common.type.StampFactory.contradiction:()Lorg/graalvm/compiler/core/common/type/Stamp;
goto 3
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.extended.GuardingNode
StackMap stack: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.LogicNode
2: invokestatic org.graalvm.compiler.core.common.type.StampFactory.tautology:()Lorg/graalvm/compiler/core/common/type/Stamp;
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.extended.GuardingNode
StackMap stack: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.core.common.type.Stamp
3: aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.conditions:Ljava/util/ArrayDeque;
new org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition
dup
aload 3
aload 1
iload 2
invokespecial org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition.<init>:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/LogicNode;Z)V
invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
5: return
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/phases/common/ConditionalEliminationPhase$Instance;
0 6 1 condition Lorg/graalvm/compiler/nodes/LogicNode;
0 6 2 negated Z
0 6 3 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
MethodParameters:
Name Flags
condition
negated
guard
protected org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement getInfoElements(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.map:Lorg/graalvm/compiler/graph/NodeMap;
aload 1
invokevirtual org.graalvm.compiler.graph.NodeMap.getAndGrow:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
astore 2
start local 2 3: aload 2
ifnonnull 5
4: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.map:Lorg/graalvm/compiler/graph/NodeMap;
aload 1
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.skipPi:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.graph.NodeMap.getAndGrow:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
astore 2
5: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 6 1 proxiedValue Lorg/graalvm/compiler/nodes/ValueNode;
3 6 2 infoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
MethodParameters:
Name Flags
proxiedValue
protected boolean rewireGuards(org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer);
descriptor: (Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, 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.phases.common.ConditionalEliminationPhase.counterStampsFound:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
1: aload 5
aload 1
iload 2
aload 4
aload 3
invokeinterface org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer.rewire:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ireturn
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/phases/common/ConditionalEliminationPhase$Instance;
0 2 1 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 2 2 result Z
0 2 3 proxifiedInput Lorg/graalvm/compiler/nodes/ValueNode;
0 2 4 guardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 2 5 rewireGuardFunction Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
MethodParameters:
Name Flags
guard
result
proxifiedInput
guardedValueStamp
rewireGuardFunction
protected boolean tryProveCondition(org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aconst_null
aload 1
aload 2
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tryProveGuardCondition:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 1 1 node Lorg/graalvm/compiler/nodes/LogicNode;
0 1 2 rewireGuardFunction Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
MethodParameters:
Name Flags
node
rewireGuardFunction
private org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement nextElement(org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement);
descriptor: (Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getParent:()Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
areturn
3: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 4: aload 3
instanceof org.graalvm.compiler.nodes.PiNode
ifeq 7
5: aload 3
checkcast org.graalvm.compiler.nodes.PiNode
astore 4
start local 4 6: aload 0
aload 4
invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
areturn
end local 4 end local 3 7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 8 1 current Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
1 8 2 parent Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
4 7 3 proxifiedInput Lorg/graalvm/compiler/nodes/ValueNode;
6 7 4 piNode Lorg/graalvm/compiler/nodes/PiNode;
MethodParameters:
Name Flags
current
protected boolean tryProveGuardCondition(org.graalvm.compiler.nodes.DeoptimizingGuard, org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer);
descriptor: (Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
start local 4 1: goto 7
2: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
astore 5
start local 5 3: aload 5
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
checkcast jdk.vm.ci.meta.JavaConstant
astore 6
start local 6 4: aload 6
ifnull 6
5: aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 6
invokeinterface jdk.vm.ci.meta.JavaConstant.asBoolean:()Z
aconst_null
aconst_null
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
6: StackMap locals: org.graalvm.compiler.core.common.type.Stamp jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
end local 6 end local 5 7: StackMap locals:
StackMap stack:
aload 4
ifnonnull 2
8: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.conditions:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.iterator:()Ljava/util/Iterator;
astore 6
goto 13
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement top java.util.Iterator
StackMap stack:
9: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition
astore 5
start local 5 10: aload 5
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 5
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition.isNegated:()Z
aload 2
invokevirtual org.graalvm.compiler.nodes.LogicNode.implies:(ZLorg/graalvm/compiler/nodes/LogicNode;)Ljdk/vm/ci/meta/TriState;
astore 7
start local 7 11: aload 7
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 13
12: aload 0
aload 5
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition.guard:Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 7
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aconst_null
aconst_null
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
end local 7 end local 5 13: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
14: aload 2
instanceof org.graalvm.compiler.nodes.UnaryOpLogicNode
ifeq 34
15: aload 2
checkcast org.graalvm.compiler.nodes.UnaryOpLogicNode
astore 5
start local 5 16: aload 5
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 17: aload 0
aload 6
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
18: goto 24
19: StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement org.graalvm.compiler.nodes.UnaryOpLogicNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
astore 7
start local 7 20: aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
start local 8 21: aload 8
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 23
22: aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 8
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
23: StackMap locals: org.graalvm.compiler.core.common.type.Stamp jdk.vm.ci.meta.TriState
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
end local 8 end local 7 24: StackMap locals:
StackMap stack:
aload 4
ifnonnull 19
25: aload 0
aload 6
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.recursiveFoldStampFromInfo:(Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/collections/Pair;
astore 7
start local 7 26: aload 7
ifnull 30
27: aload 5
aload 7
invokevirtual jdk.internal.vm.compiler.collections.Pair.getRight:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.Stamp
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
start local 8 28: aload 8
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 30
29: aload 0
aload 7
invokevirtual jdk.internal.vm.compiler.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 8
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aload 7
invokevirtual jdk.internal.vm.compiler.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 7
invokevirtual jdk.internal.vm.compiler.collections.Pair.getRight:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.Stamp
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
end local 8 30: StackMap locals: jdk.internal.vm.compiler.collections.Pair
StackMap stack:
aload 1
ifnull 89
31: aload 5
aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.isNegated:()Z
invokevirtual org.graalvm.compiler.nodes.UnaryOpLogicNode.getSucceedingStampForValue:(Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 8
start local 8 32: aload 8
ifnull 89
aload 0
aload 1
aload 6
aload 8
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.foldPendingTest:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ifeq 89
33: iconst_1
ireturn
end local 8 end local 7 end local 6 end local 5 34: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.BinaryOpLogicNode
ifeq 86
35: aload 2
checkcast org.graalvm.compiler.nodes.BinaryOpLogicNode
astore 5
start local 5 36: aload 5
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 37: aload 5
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 38: aload 0
aload 6
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
39: goto 44
40: StackMap locals: org.graalvm.compiler.nodes.BinaryOpLogicNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 5
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 7
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.nodes.BinaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
start local 8 41: aload 8
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 43
42: aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 8
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
43: StackMap locals: jdk.vm.ci.meta.TriState
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
end local 8 44: StackMap locals:
StackMap stack:
aload 4
ifnonnull 40
45: aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 51
46: aload 0
aload 6
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.recursiveFoldStampFromInfo:(Lorg/graalvm/compiler/graph/Node;)Ljdk/internal/vm/compiler/collections/Pair;
astore 8
start local 8 47: aload 8
ifnull 58
48: aload 5
aload 8
invokevirtual jdk.internal.vm.compiler.collections.Pair.getRight:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.Stamp
aload 7
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.nodes.BinaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 9
start local 9 49: aload 9
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 58
50: aload 0
aload 8
invokevirtual jdk.internal.vm.compiler.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 9
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aload 8
invokevirtual jdk.internal.vm.compiler.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 8
invokevirtual jdk.internal.vm.compiler.collections.Pair.getRight:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.Stamp
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
end local 9 end local 8 51: StackMap locals:
StackMap stack:
aload 0
aload 7
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
52: goto 57
53: StackMap locals:
StackMap stack:
aload 5
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;
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 8
start local 8 54: aload 8
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 56
55: aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 8
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
56: StackMap locals: jdk.vm.ci.meta.TriState
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
end local 8 57: StackMap locals:
StackMap stack:
aload 4
ifnonnull 53
58: StackMap locals:
StackMap stack:
aload 6
instanceof org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
ifeq 69
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 69
59: aload 6
checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
astore 8
start local 8 60: aload 8
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 69
61: aload 0
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getInfoElements:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
62: goto 68
63: StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
StackMap stack:
aload 8
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()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;
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 9
start local 9 64: aload 5
aload 9
aload 7
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.nodes.BinaryOpLogicNode.tryFold:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/TriState;
astore 10
start local 10 65: aload 10
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 67
66: aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
aload 10
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getProxifiedInput:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 9
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
67: StackMap locals: org.graalvm.compiler.core.common.type.Stamp jdk.vm.ci.meta.TriState
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.nextElement:(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
astore 4
end local 10 end local 9 68: StackMap locals:
StackMap stack:
aload 4
ifnonnull 63
end local 8 69: StackMap locals:
StackMap stack:
aload 1
ifnull 77
aload 5
instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
ifeq 77
aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.isNegated:()Z
ifne 77
70: aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 77
aload 6
instanceof org.graalvm.compiler.nodes.calc.AndNode
ifeq 77
71: aload 6
checkcast org.graalvm.compiler.nodes.calc.AndNode
astore 8
start local 8 72: aload 8
invokevirtual org.graalvm.compiler.nodes.calc.AndNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 7
if_acmpne 77
73: 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;
invokestatic org.graalvm.compiler.core.common.type.ArithmeticOpTable.forStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable.getOr:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
astore 9
start local 9 74: aload 9
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.AndNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 7
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 10
start local 10 75: aload 0
aload 1
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.AndNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 10
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.foldPendingTest:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ifeq 77
76: iconst_1
ireturn
end local 10 end local 9 end local 8 77: StackMap locals:
StackMap stack:
aload 1
ifnull 89
78: aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 82
79: aload 5
aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.isNegated:()Z
aload 6
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 7
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getSucceedingStampForX:(ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 8
start local 8 80: aload 8
ifnull 82
aload 0
aload 1
aload 6
aload 8
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.foldPendingTest:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ifeq 82
81: iconst_1
ireturn
end local 8 82: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 89
83: aload 5
aload 1
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.isNegated:()Z
aload 6
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getOtherSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 7
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.getSafeStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.BinaryOpLogicNode.getSucceedingStampForY:(ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 8
start local 8 84: aload 8
ifnull 89
aload 0
aload 1
aload 7
aload 8
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.foldPendingTest:(Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ifeq 89
85: iconst_1
ireturn
end local 8 end local 7 end local 6 end local 5 86: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.ShortCircuitOrNode
ifeq 89
87: aload 2
checkcast org.graalvm.compiler.nodes.ShortCircuitOrNode
astore 5
start local 5 88: aload 0
aload 5
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getX:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
aload 5
aload 3
invokedynamic rewire(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
org/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance.lambda$5(Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z (7)
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tryProveCondition:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
end local 5 89: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 90 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 90 1 thisGuard Lorg/graalvm/compiler/nodes/DeoptimizingGuard;
0 90 2 node Lorg/graalvm/compiler/nodes/LogicNode;
0 90 3 rewireGuardFunction Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
1 90 4 infoElement Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
3 7 5 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
4 7 6 constant Ljdk/vm/ci/meta/JavaConstant;
10 13 5 guardedCondition Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardedCondition;
11 13 7 result Ljdk/vm/ci/meta/TriState;
16 34 5 unaryLogicNode Lorg/graalvm/compiler/nodes/UnaryOpLogicNode;
17 34 6 value Lorg/graalvm/compiler/nodes/ValueNode;
20 24 7 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
21 24 8 result Ljdk/vm/ci/meta/TriState;
26 34 7 foldResult Ljdk/internal/vm/compiler/collections/Pair<Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;Lorg/graalvm/compiler/core/common/type/Stamp;>;
28 30 8 result Ljdk/vm/ci/meta/TriState;
32 34 8 newStamp Lorg/graalvm/compiler/core/common/type/Stamp;
36 86 5 binaryOpLogicNode Lorg/graalvm/compiler/nodes/BinaryOpLogicNode;
37 86 6 x Lorg/graalvm/compiler/nodes/ValueNode;
38 86 7 y Lorg/graalvm/compiler/nodes/ValueNode;
41 44 8 result Ljdk/vm/ci/meta/TriState;
47 51 8 foldResult Ljdk/internal/vm/compiler/collections/Pair<Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;Lorg/graalvm/compiler/core/common/type/Stamp;>;
49 51 9 result Ljdk/vm/ci/meta/TriState;
54 57 8 result Ljdk/vm/ci/meta/TriState;
60 69 8 binary Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
64 68 9 newStampX Lorg/graalvm/compiler/core/common/type/Stamp;
65 68 10 result Ljdk/vm/ci/meta/TriState;
72 77 8 and Lorg/graalvm/compiler/nodes/calc/AndNode;
74 77 9 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp$Or;>;
75 77 10 newStampX Lorg/graalvm/compiler/core/common/type/IntegerStamp;
80 82 8 newStampX Lorg/graalvm/compiler/core/common/type/Stamp;
84 86 8 newStampY Lorg/graalvm/compiler/core/common/type/Stamp;
88 89 5 shortCircuitOrNode Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;
MethodParameters:
Name Flags
thisGuard
node
rewireGuardFunction
protected void registerNewStamp(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.extended.GuardingNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
flags: (0x0004) ACC_PROTECTED
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
aload 3
iconst_0
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Z)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/phases/common/ConditionalEliminationPhase$Instance;
0 2 1 maybeProxiedValue Lorg/graalvm/compiler/nodes/ValueNode;
0 2 2 newStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 2 3 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
MethodParameters:
Name Flags
maybeProxiedValue
newStamp
guard
protected void registerNewStamp(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.extended.GuardingNode, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.$assertionsDisabled:Z
ifne 1
aload 1
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.$assertionsDisabled:Z
ifne 2
aload 3
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 2
ifnull 3
aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isUnrestricted:()Z
ifeq 4
3: StackMap locals:
StackMap stack:
return
4: StackMap locals:
StackMap stack:
aload 1
astore 5
start local 5 5: aload 2
astore 6
start local 6 6: goto 23
7: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
aconst_null
astore 7
start local 7 8: aload 5
instanceof org.graalvm.compiler.nodes.PiNode
ifeq 10
9: aload 5
astore 7
10: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase.counterStampsRegistered:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
11: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "\t Saving stamp for node %s stamp %s guarded by %s"
aload 5
aload 6
aload 3
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
12: getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.$assertionsDisabled:Z
ifne 13
aload 5
instanceof org.graalvm.compiler.nodes.LogicNode
ifne 13
aload 6
aload 5
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
ifne 13
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " vs. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
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 java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
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
13: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.map:Lorg/graalvm/compiler/graph/NodeMap;
aload 5
new org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
dup
aload 6
aload 3
aload 7
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.map:Lorg/graalvm/compiler/graph/NodeMap;
aload 5
invokevirtual org.graalvm.compiler.graph.NodeMap.getAndGrow:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
invokespecial org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;)V
invokevirtual org.graalvm.compiler.graph.NodeMap.setAndGrow:(Lorg/graalvm/compiler/graph/Node;Ljava/lang/Object;)V
14: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.undoOperations:Lorg/graalvm/compiler/graph/NodeStack;
aload 5
invokevirtual org.graalvm.compiler.graph.NodeStack.push:(Lorg/graalvm/compiler/graph/Node;)V
15: iload 4
ifeq 19
aload 5
instanceof org.graalvm.compiler.nodes.PiNode
ifeq 19
16: aload 5
checkcast org.graalvm.compiler.nodes.PiNode
astore 8
start local 8 17: aload 8
invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
end local 8 18: goto 23
StackMap locals:
StackMap stack:
19: aload 5
instanceof org.graalvm.compiler.nodes.spi.StampInverter
ifeq 24
20: aload 5
checkcast org.graalvm.compiler.nodes.spi.StampInverter
astore 8
start local 8 21: aload 8
invokeinterface org.graalvm.compiler.nodes.spi.StampInverter.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
22: aload 8
aload 6
invokeinterface org.graalvm.compiler.nodes.spi.StampInverter.invertStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
end local 8 end local 7 23: StackMap locals:
StackMap stack:
aload 6
ifnull 24
aload 5
ifnonnull 7
24: StackMap locals:
StackMap stack:
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 25 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 25 1 maybeProxiedValue Lorg/graalvm/compiler/nodes/ValueNode;
0 25 2 newStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 25 3 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 25 4 propagateThroughPis Z
5 25 5 value Lorg/graalvm/compiler/nodes/ValueNode;
6 25 6 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
8 23 7 proxiedValue Lorg/graalvm/compiler/nodes/ValueNode;
17 18 8 piNode Lorg/graalvm/compiler/nodes/PiNode;
21 23 8 stampInverter Lorg/graalvm/compiler/nodes/spi/StampInverter;
MethodParameters:
Name Flags
maybeProxiedValue
newStamp
guard
propagateThroughPis
protected void processAbstractBegin(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
astore 2
start local 2 1: aload 2
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 9
2: aload 2
checkcast org.graalvm.compiler.nodes.IfNode
astore 3
start local 3 3: aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 1
if_acmpne 4
iconst_1
goto 5
StackMap locals: org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.IfNode
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 4
start local 4 6: aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 5
start local 5 7: aload 0
aload 5
iload 4
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewCondition:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/extended/GuardingNode;)V
end local 5 end local 4 end local 3 8: goto 16
StackMap locals:
StackMap stack:
9: aload 2
instanceof org.graalvm.compiler.nodes.java.TypeSwitchNode
ifeq 13
10: aload 2
checkcast org.graalvm.compiler.nodes.java.TypeSwitchNode
astore 3
start local 3 11: aload 0
aload 1
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processTypeSwitch:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/java/TypeSwitchNode;)V
end local 3 12: goto 16
StackMap locals:
StackMap stack:
13: aload 2
instanceof org.graalvm.compiler.nodes.extended.IntegerSwitchNode
ifeq 16
14: aload 2
checkcast org.graalvm.compiler.nodes.extended.IntegerSwitchNode
astore 3
start local 3 15: aload 0
aload 1
aload 3
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.processIntegerSwitch:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;)V
end local 3 16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 17 1 beginNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
1 17 2 predecessor Lorg/graalvm/compiler/graph/Node;
3 8 3 ifNode Lorg/graalvm/compiler/nodes/IfNode;
6 8 4 negated Z
7 8 5 condition Lorg/graalvm/compiler/nodes/LogicNode;
11 12 3 typeSwitch Lorg/graalvm/compiler/nodes/java/TypeSwitchNode;
15 16 3 integerSwitchNode Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
MethodParameters:
Name Flags
beginNode
private static boolean maybeMultipleUsages(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.hasMoreThanOneUsage:()Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.ProxyNode
ifne 6
3: aload 0
instanceof org.graalvm.compiler.nodes.PiNode
ifne 6
4: aload 0
instanceof org.graalvm.compiler.nodes.spi.StampInverter
ifne 6
5: iconst_0
ireturn
StackMap locals:
StackMap stack:
6: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 value Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
value
protected void processIntegerSwitch(org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.nodes.extended.IntegerSwitchNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 1: aload 3
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.maybeMultipleUsages:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 5
2: aload 2
aload 1
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.getValueStampForSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 4
start local 4 3: aload 4
ifnull 5
4: aload 0
aload 3
aload 4
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
end local 4 5: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
return
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/phases/common/ConditionalEliminationPhase$Instance;
0 6 1 beginNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 6 2 integerSwitchNode Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
1 6 3 value Lorg/graalvm/compiler/nodes/ValueNode;
3 5 4 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
beginNode
integerSwitchNode
protected void processTypeSwitch(org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.nodes.java.TypeSwitchNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/java/TypeSwitchNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.graalvm.compiler.nodes.java.TypeSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 1: aload 3
instanceof org.graalvm.compiler.nodes.extended.LoadHubNode
ifeq 8
2: aload 3
checkcast org.graalvm.compiler.nodes.extended.LoadHubNode
astore 4
start local 4 3: aload 4
invokevirtual org.graalvm.compiler.nodes.extended.LoadHubNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 4: aload 5
invokestatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.maybeMultipleUsages:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 8
5: aload 2
aload 1
invokevirtual org.graalvm.compiler.nodes.java.TypeSwitchNode.getValueStampForSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
start local 6 6: aload 6
ifnull 8
7: aload 0
aload 5
aload 6
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.registerNewStamp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;)V
end local 6 end local 5 end local 4 8: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 9 1 beginNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 9 2 typeSwitch Lorg/graalvm/compiler/nodes/java/TypeSwitchNode;
1 9 3 hub Lorg/graalvm/compiler/nodes/ValueNode;
3 8 4 loadHub Lorg/graalvm/compiler/nodes/extended/LoadHubNode;
4 8 5 value Lorg/graalvm/compiler/nodes/ValueNode;
6 8 6 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
beginNode
typeSwitch
public void exit(org.graalvm.compiler.nodes.cfg.Block, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks);
descriptor: (Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Marks;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks.infoElementOperations:I
istore 3
start local 3 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.undoOperations:Lorg/graalvm/compiler/graph/NodeStack;
invokevirtual org.graalvm.compiler.graph.NodeStack.pop:()Lorg/graalvm/compiler/graph/Node;
astore 4
start local 4 3: aload 4
invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
ifeq 5
4: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.map:Lorg/graalvm/compiler/graph/NodeMap;
aload 4
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.map:Lorg/graalvm/compiler/graph/NodeMap;
aload 4
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement.getParent:()Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$InfoElement;
invokevirtual org.graalvm.compiler.graph.NodeMap.set:(Lorg/graalvm/compiler/graph/Node;Ljava/lang/Object;)V
end local 4 5: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.undoOperations:Lorg/graalvm/compiler/graph/NodeStack;
invokevirtual org.graalvm.compiler.graph.NodeStack.size:()I
iload 3
if_icmpgt 2
6: aload 2
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks.conditions:I
istore 4
start local 4 7: goto 9
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.conditions:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.pop:()Ljava/lang/Object;
pop
9: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.conditions:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.size:()I
iload 4
if_icmpgt 8
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 11 1 b Lorg/graalvm/compiler/nodes/cfg/Block;
0 11 2 marks Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Marks;
1 11 3 infoElementsMark I
3 5 4 node Lorg/graalvm/compiler/graph/Node;
7 11 4 conditionsMark I
MethodParameters:
Name Flags
b
marks
public java.lang.Object enter(org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/nodes/cfg/Block;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.enter:(Lorg/graalvm/compiler/nodes/cfg/Block;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Marks;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void exit(org.graalvm.compiler.nodes.cfg.Block, java.lang.Object);
descriptor: (Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.exit:(Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Marks;)V
return
LocalVariableTable:
Start End Slot Name Signature
private static boolean lambda$0(org.graalvm.compiler.nodes.ConditionAnchorNode, org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ConditionAnchorNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=6, args_size=5
start local 1 start local 2 start local 3 start local 4 0: iload 2
aload 0
invokevirtual org.graalvm.compiler.nodes.ConditionAnchorNode.isNegated:()Z
if_icmpeq 5
1: aload 0
aload 1
invokeinterface org.graalvm.compiler.nodes.extended.GuardingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ConditionAnchorNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
2: aload 0
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unlinkFixedNode:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
3: aload 0
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
4: goto 8
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.ConditionAnchorNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.extended.ValueAnchorNode
dup
aconst_null
invokespecial org.graalvm.compiler.nodes.extended.ValueAnchorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.extended.ValueAnchorNode
astore 5
start local 5 6: aload 0
aload 5
invokevirtual org.graalvm.compiler.nodes.ConditionAnchorNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
7: aload 0
invokevirtual org.graalvm.compiler.nodes.ConditionAnchorNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
end local 5 8: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 9 1 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 9 2 result Z
0 9 3 guardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 9 4 newInput Lorg/graalvm/compiler/nodes/ValueNode;
6 8 5 valueAnchor Lorg/graalvm/compiler/nodes/extended/ValueAnchorNode;
private boolean lambda$1(org.graalvm.compiler.nodes.GuardNode, org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/GuardNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=8, args_size=6
start local 0 start local 2 start local 3 start local 4 start local 5 0: iload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.isNegated:()Z
if_icmpeq 3
1: aload 1
aload 2
invokeinterface org.graalvm.compiler.nodes.extended.GuardingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.GuardNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
2: goto 8
3: StackMap locals:
StackMap stack:
new org.graalvm.compiler.nodes.FixedGuardNode
dup
iload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.LogicConstantNode.forBoolean:(ZLorg/graalvm/compiler/graph/Graph;)Lorg/graalvm/compiler/nodes/LogicConstantNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.getReason:()Ljdk/vm/ci/meta/DeoptimizationReason;
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.getSpeculation:()Ljdk/vm/ci/meta/SpeculationLog$Speculation;
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.isNegated:()Z
4: aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
5: invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/SpeculationLog$Speculation;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)V
astore 6
start local 6 6: aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.getAnchor:()Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 7
start local 7 7: aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 7
aload 1
invokevirtual org.graalvm.compiler.nodes.GuardNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 6
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 7 end local 6 8: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 9 2 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 9 3 result Z
0 9 4 guardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 9 5 newInput Lorg/graalvm/compiler/nodes/ValueNode;
6 8 6 deopt Lorg/graalvm/compiler/nodes/FixedGuardNode;
7 8 7 beginNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
private boolean lambda$2(org.graalvm.compiler.nodes.FixedGuardNode, org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=6, args_size=6
start local 0 start local 2 start local 3 start local 4 start local 5 0: iload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.isNegated:()Z
if_icmpeq 5
1: aload 1
aload 2
invokeinterface org.graalvm.compiler.nodes.extended.GuardingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
2: aload 1
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unlinkFixedNode:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
3: aload 1
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 1
iload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.LogicConstantNode.forBoolean:(ZLorg/graalvm/compiler/graph/Graph;)Lorg/graalvm/compiler/nodes/LogicConstantNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.isNegated:()Z
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.setCondition:(Lorg/graalvm/compiler/nodes/LogicNode;Z)V
6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Kill fixed guard guard"
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
7: iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 8 2 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 8 3 result Z
0 8 4 guardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 8 5 newInput Lorg/graalvm/compiler/nodes/ValueNode;
private boolean lambda$3(org.graalvm.compiler.nodes.IfNode, org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=7, args_size=6
start local 0 start local 2 start local 3 start local 4 start local 5 0: aload 1
iload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.LogicConstantNode.forBoolean:(ZLorg/graalvm/compiler/graph/Graph;)Lorg/graalvm/compiler/nodes/LogicConstantNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.setCondition:(Lorg/graalvm/compiler/nodes/LogicNode;)V
1: aload 1
iload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.getSuccessor:(Z)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 6
start local 6 2: aload 6
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 2
invokeinterface org.graalvm.compiler.nodes.extended.GuardingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
3: getstatic org.graalvm.compiler.phases.common.ConditionalEliminationPhase.counterIfsKilled:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
getfield org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
4: iconst_1
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 5 2 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 5 3 result Z
0 5 4 guardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 5 5 newInput Lorg/graalvm/compiler/nodes/ValueNode;
2 5 6 survivingSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
private static boolean lambda$4(org.graalvm.compiler.nodes.DeoptimizingGuard, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer, org.graalvm.compiler.nodes.DeoptimizingGuard, org.graalvm.compiler.nodes.LogicNode, jdk.vm.ci.meta.DeoptimizationAction, org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;Lorg/graalvm/compiler/nodes/DeoptimizingGuard;Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationAction;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=10, args_size=9
start local 5 start local 6 start local 7 start local 8 0: iload 6
aload 0
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.isNegated:()Z
if_icmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 9
start local 9 3: aload 1
aload 5
iload 9
aload 2
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.isNegated:()Z
if_icmpne 4
iconst_1
goto 5
StackMap locals: org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.nodes.LogicNode jdk.vm.ci.meta.DeoptimizationAction org.graalvm.compiler.nodes.extended.GuardingNode int org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.ValueNode int
StackMap stack: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.nodes.extended.GuardingNode
4: iconst_0
StackMap locals: org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.nodes.DeoptimizingGuard org.graalvm.compiler.nodes.LogicNode jdk.vm.ci.meta.DeoptimizationAction org.graalvm.compiler.nodes.extended.GuardingNode int org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.ValueNode int
StackMap stack: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.nodes.extended.GuardingNode int
5: aload 7
aload 8
invokeinterface org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer.rewire:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 11
6: iload 9
ifne 10
7: aload 0
aload 3
aload 2
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.isNegated:()Z
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.setCondition:(Lorg/graalvm/compiler/nodes/LogicNode;Z)V
8: aload 0
aload 4
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.setAction:(Ljdk/vm/ci/meta/DeoptimizationAction;)V
9: aload 0
aload 2
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.getReason:()Ljdk/vm/ci/meta/DeoptimizationReason;
invokeinterface org.graalvm.compiler.nodes.DeoptimizingGuard.setReason:(Ljdk/vm/ci/meta/DeoptimizationReason;)V
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
11: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.LogicNode.safeDelete:()V
12: iconst_0
ireturn
end local 9 end local 8 end local 7 end local 6 end local 5 LocalVariableTable:
Start End Slot Name Signature
0 13 5 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 13 6 result Z
0 13 7 innerGuardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 13 8 newInput Lorg/graalvm/compiler/nodes/ValueNode;
3 13 9 mustDeopt Z
private boolean lambda$5(org.graalvm.compiler.nodes.ShortCircuitOrNode, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer, org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=7, args_size=7
start local 0 start local 3 start local 4 start local 5 start local 6 0: iload 4
aload 1
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.isXNegated:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack: int
1: iconst_1
StackMap locals: org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance org.graalvm.compiler.nodes.ShortCircuitOrNode org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer org.graalvm.compiler.nodes.extended.GuardingNode int org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.ValueNode
StackMap stack: int int
2: if_icmpne 4
3: aload 0
aload 3
iconst_1
aload 6
aload 5
aload 2
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getY:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
aload 6
aload 3
aload 1
aload 5
aload 2
invokedynamic rewire(Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
org/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance.lambda$6(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z (7)
(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.tryProveCondition:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
end local 6 end local 5 end local 4 end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 5 3 guard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 5 4 result Z
0 5 5 guardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 5 6 newInput Lorg/graalvm/compiler/nodes/ValueNode;
private boolean lambda$6(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.extended.GuardingNode, org.graalvm.compiler.nodes.ShortCircuitOrNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer, org.graalvm.compiler.nodes.extended.GuardingNode, boolean, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=11, args_size=10
start local 0 start local 6 start local 7 start local 8 start local 9 0: aload 1
astore 10
start local 10 1: aload 10
ifnonnull 4
2: aload 9
astore 10
3: goto 7
StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
4: aload 9
ifnull 7
5: aload 9
aload 1
if_acmpeq 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 6
aload 2
if_acmpne 9
8: aload 0
aload 2
iload 7
aload 3
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.isYNegated:()Z
ixor
aload 10
aload 4
aload 5
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance.rewireGuards:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$GuardRewirer;)Z
ireturn
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Instance;
0 10 6 innerGuard Lorg/graalvm/compiler/nodes/extended/GuardingNode;
0 10 7 innerResult Z
0 10 8 innerGuardedValueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 10 9 innerNewInput Lorg/graalvm/compiler/nodes/ValueNode;
1 10 10 proxifiedInput Lorg/graalvm/compiler/nodes/ValueNode;
}
Signature: Ljava/lang/Object;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph$RecursiveVisitor<Lorg/graalvm/compiler/phases/common/ConditionalEliminationPhase$Marks;>;
SourceFile: "ConditionalEliminationPhase.java"
NestHost: org.graalvm.compiler.phases.common.ConditionalEliminationPhase
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Speculation = jdk.vm.ci.meta.SpeculationLog$Speculation of jdk.vm.ci.meta.SpeculationLog
public abstract BinaryOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract And = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp$And of org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp
public abstract Or = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp$Or of org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp
public abstract EdgeVisitor = org.graalvm.compiler.graph.Node$EdgeVisitor of org.graalvm.compiler.graph.Node
public abstract RecursiveVisitor = org.graalvm.compiler.nodes.cfg.ControlFlowGraph$RecursiveVisitor of org.graalvm.compiler.nodes.cfg.ControlFlowGraph
protected abstract GuardRewirer = org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardRewirer of org.graalvm.compiler.phases.common.ConditionalEliminationPhase
protected final GuardedCondition = org.graalvm.compiler.phases.common.ConditionalEliminationPhase$GuardedCondition of org.graalvm.compiler.phases.common.ConditionalEliminationPhase
protected final InfoElement = org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InfoElement of org.graalvm.compiler.phases.common.ConditionalEliminationPhase
InputFilter = org.graalvm.compiler.phases.common.ConditionalEliminationPhase$InputFilter of org.graalvm.compiler.phases.common.ConditionalEliminationPhase
public Instance = org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Instance of org.graalvm.compiler.phases.common.ConditionalEliminationPhase
public final Marks = org.graalvm.compiler.phases.common.ConditionalEliminationPhase$Marks of org.graalvm.compiler.phases.common.ConditionalEliminationPhase
private final PhiInfoElement = org.graalvm.compiler.phases.common.ConditionalEliminationPhase$PhiInfoElement of org.graalvm.compiler.phases.common.ConditionalEliminationPhase