public class org.graalvm.compiler.core.match.MatchContext
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.core.match.MatchContext
super_class: java.lang.Object
{
private static final org.graalvm.compiler.debug.CounterKey MatchContextSuccessDifferentBlocks;
descriptor: Lorg/graalvm/compiler/debug/CounterKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.graalvm.compiler.graph.Node root;
descriptor: Lorg/graalvm/compiler/graph/Node;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.core.match.MatchStatement rule;
descriptor: Lorg/graalvm/compiler/core/match/MatchStatement;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult schedule;
descriptor: Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.internal.vm.compiler.collections.EconomicMap<java.lang.String, org.graalvm.compiler.core.match.MatchContext$NamedNode> namedNodes;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/String;Lorg/graalvm/compiler/core/match/MatchContext$NamedNode;>;
private org.graalvm.compiler.core.match.MatchContext$ConsumedNodes consumed;
descriptor: Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.nodes.cfg.Block rootBlock;
descriptor: Lorg/graalvm/compiler/nodes/cfg/Block;
flags: (0x0002) ACC_PRIVATE
private int rootIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int emitIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.nodes.cfg.Block emitBlock;
descriptor: Lorg/graalvm/compiler/nodes/cfg/Block;
flags: (0x0002) ACC_PRIVATE
private final org.graalvm.compiler.core.gen.NodeLIRBuilder builder;
descriptor: Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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/core/match/MatchContext;
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.core.match.MatchContext.$assertionsDisabled:Z
3: ldc "MatchContextSuccessDifferentBlocks"
invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
putstatic org.graalvm.compiler.core.match.MatchContext.MatchContextSuccessDifferentBlocks:Lorg/graalvm/compiler/debug/CounterKey;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.core.gen.NodeLIRBuilder, org.graalvm.compiler.core.match.MatchStatement, int, org.graalvm.compiler.graph.Node, org.graalvm.compiler.nodes.cfg.Block, org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult);
descriptor: (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;Lorg/graalvm/compiler/core/match/MatchStatement;ILorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.graalvm.compiler.core.match.MatchContext$ConsumedNodes
dup
invokespecial org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.<init>:()V
putfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
2: aload 0
aload 1
putfield org.graalvm.compiler.core.match.MatchContext.builder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
3: aload 0
aload 2
putfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
4: aload 0
aload 4
putfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
5: getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 6
iload 3
aload 6
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 5
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
aload 4
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
if_icmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.core.gen.NodeLIRBuilder org.graalvm.compiler.core.match.MatchStatement int org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult
StackMap stack:
aload 0
aload 6
putfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
7: aload 0
aload 5
putfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
8: aload 0
iload 3
putfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
9: 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 10 0 this Lorg/graalvm/compiler/core/match/MatchContext;
0 10 1 builder Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
0 10 2 rule Lorg/graalvm/compiler/core/match/MatchStatement;
0 10 3 index I
0 10 4 node Lorg/graalvm/compiler/graph/Node;
0 10 5 rootBlock Lorg/graalvm/compiler/nodes/cfg/Block;
0 10 6 schedule Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
MethodParameters:
Name Flags
builder
rule
index
node
rootBlock
schedule
public org.graalvm.compiler.graph.Node getRoot();
descriptor: ()Lorg/graalvm/compiler/graph/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/match/MatchContext;
public org.graalvm.compiler.core.match.MatchPattern$Result captureNamedValue(java.lang.String, java.lang.Class<? extends org.graalvm.compiler.graph.Node>, org.graalvm.compiler.graph.Node);
descriptor: (Ljava/lang/String;Ljava/lang/Class;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.namedNodes:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnonnull 2
1: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.DEFAULT:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.core.match.MatchContext.namedNodes:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.namedNodes:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.core.match.MatchContext$NamedNode
astore 4
start local 4 3: aload 4
ifnonnull 7
4: new org.graalvm.compiler.core.match.MatchContext$NamedNode
dup
aload 2
aload 3
invokespecial org.graalvm.compiler.core.match.MatchContext$NamedNode.<init>:(Ljava/lang/Class;Lorg/graalvm/compiler/graph/Node;)V
astore 4
5: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.namedNodes:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
aload 4
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
7: StackMap locals: org.graalvm.compiler.core.match.MatchContext$NamedNode
StackMap stack:
aload 4
getfield org.graalvm.compiler.core.match.MatchContext$NamedNode.value:Lorg/graalvm/compiler/graph/Node;
aload 3
if_acmpne 8
aload 4
getfield org.graalvm.compiler.core.match.MatchContext$NamedNode.type:Ljava/lang/Class;
aload 2
if_acmpeq 9
8: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getPattern:()Lorg/graalvm/compiler/core/match/MatchPattern;
invokestatic org.graalvm.compiler.core.match.MatchPattern$Result.namedValueMismatch:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/match/MatchPattern;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
9: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/core/match/MatchContext;
0 10 1 name Ljava/lang/String;
0 10 2 type Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;
0 10 3 value Lorg/graalvm/compiler/graph/Node;
3 10 4 current Lorg/graalvm/compiler/core/match/MatchContext$NamedNode;
Signature: (Ljava/lang/String;Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
MethodParameters:
Name Flags
name
type
value
public org.graalvm.compiler.core.match.MatchPattern$Result validate();
descriptor: ()Lorg/graalvm/compiler/core/match/MatchPattern$Result;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.core.match.MatchContext.findEarlyPosition:()Lorg/graalvm/compiler/core/match/MatchPattern$Result;
astore 1
start local 1 1: aload 1
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
if_acmpeq 3
2: aload 1
areturn
3: StackMap locals: org.graalvm.compiler.core.match.MatchPattern$Result
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.match.MatchContext.findLatePosition:()V
4: getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 5
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
if_icmpeq 5
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.find:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.ignoresSideEffects:Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.match.MatchContext.verifyInputs:()Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/core/match/MatchContext;
1 6 1 result Lorg/graalvm/compiler/core/match/MatchPattern$Result;
private org.graalvm.compiler.core.match.MatchPattern$Result findEarlyPosition();
descriptor: ()Lorg/graalvm/compiler/core/match/MatchPattern$Result;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=1
start local 0 0: iconst_m1
istore 1
start local 1 1: iconst_m1
istore 2
start local 2 2: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getNodeToBlockMap:()Lorg/graalvm/compiler/graph/NodeMap;
astore 3
start local 3 3: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
astore 4
start local 4 4: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.iterator:()Ljava/util/Iterator;
astore 6
goto 19
StackMap locals: org.graalvm.compiler.core.match.MatchContext int int org.graalvm.compiler.graph.NodeMap org.graalvm.compiler.core.common.cfg.BlockMap top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.match.MatchContext$ConsumedNode
astore 5
start local 5 6: aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.ignoresSideEffects:Z
ifne 19
7: aload 3
aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 7
start local 7 8: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
ifnonnull 12
9: aload 0
aload 7
putfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
10: aload 4
aload 7
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
dup
istore 2
istore 1
11: goto 19
StackMap locals: org.graalvm.compiler.core.match.MatchContext int int org.graalvm.compiler.graph.NodeMap org.graalvm.compiler.core.common.cfg.BlockMap org.graalvm.compiler.core.match.MatchContext$ConsumedNode java.util.Iterator org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
12: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
aload 7
if_acmpne 17
13: aload 4
aload 7
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
istore 8
start local 8 14: iload 1
iload 8
invokestatic java.lang.Math.min:(II)I
istore 1
15: iload 2
iload 8
invokestatic java.lang.Math.max:(II)I
istore 2
end local 8 16: goto 19
17: StackMap locals:
StackMap stack:
aload 0
ldc "nodes affected by side effects in different blocks %s"
aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchContext.logFailedMatch:(Ljava/lang/String;Lorg/graalvm/compiler/graph/Node;)V
18: aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getPattern:()Lorg/graalvm/compiler/core/match/MatchPattern;
invokestatic org.graalvm.compiler.core.match.MatchPattern$Result.notInBlock:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/match/MatchPattern;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
end local 7 end local 5 19: StackMap locals: org.graalvm.compiler.core.match.MatchContext int int org.graalvm.compiler.graph.NodeMap org.graalvm.compiler.core.common.cfg.BlockMap top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
20: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
ifnull 34
21: getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 23
iload 1
iconst_m1
if_icmpeq 22
iload 2
iconst_m1
if_icmpne 23
StackMap locals: org.graalvm.compiler.core.match.MatchContext int int org.graalvm.compiler.graph.NodeMap org.graalvm.compiler.core.common.cfg.BlockMap
StackMap stack:
22: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
astore 5
start local 5 24: iload 1
istore 6
start local 6 25: goto 31
26: StackMap locals: java.util.List int
StackMap stack:
aload 5
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 7
start local 7 27: aload 7
invokestatic org.graalvm.compiler.core.match.MatchContext.sideEffectFree:(Lorg/graalvm/compiler/graph/Node;)Z
ifne 30
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 7
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifne 30
28: aload 0
ldc "unexpected side effect %s"
aload 7
invokevirtual org.graalvm.compiler.core.match.MatchContext.logFailedMatch:(Ljava/lang/String;Lorg/graalvm/compiler/graph/Node;)V
29: aload 7
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getPattern:()Lorg/graalvm/compiler/core/match/MatchPattern;
invokestatic org.graalvm.compiler.core.match.MatchPattern$Result.notSafe:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/match/MatchPattern;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
end local 7 30: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
31: iload 6
iload 2
if_icmple 26
end local 6 32: aload 0
iload 2
putfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
end local 5 33: goto 36
34: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
putfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
35: aload 0
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
putfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
36: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/graalvm/compiler/core/match/MatchContext;
1 37 1 startIndexSideEffect I
2 37 2 endIndexSideEffect I
3 37 3 nodeToBlockMap Lorg/graalvm/compiler/graph/NodeMap<Lorg/graalvm/compiler/nodes/cfg/Block;>;
4 37 4 blockToNodesMap Lorg/graalvm/compiler/core/common/cfg/BlockMap<Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;>;
6 19 5 cn Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
8 19 7 b Lorg/graalvm/compiler/nodes/cfg/Block;
14 16 8 index I
24 33 5 nodes Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
25 32 6 i I
27 30 7 node Lorg/graalvm/compiler/graph/Node;
private static boolean sideEffectFree(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
ifne 1
aload 0
instanceof org.graalvm.compiler.nodes.calc.FloatingNode
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 node Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
node
private void findLatePosition();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
istore 1
start local 1 1: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
if_acmpeq 3
2: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
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.size:()I
iconst_1
isub
istore 1
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
astore 2
start local 2 4: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
iconst_1
iadd
istore 3
start local 3 5: goto 14
6: StackMap locals: java.util.List int
StackMap stack:
aload 2
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 4
start local 4 7: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 4
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.find:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
astore 5
start local 5 8: aload 5
ifnonnull 11
9: aload 4
invokestatic org.graalvm.compiler.core.match.MatchContext.sideEffectFree:(Lorg/graalvm/compiler/graph/Node;)Z
ifne 13
10: return
11: StackMap locals: org.graalvm.compiler.graph.Node org.graalvm.compiler.core.match.MatchContext$ConsumedNode
StackMap stack:
getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 12
aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.ignoresSideEffects:Z
ifne 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 0
iload 3
putfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
end local 5 end local 4 13: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
iload 1
if_icmple 6
end local 3 15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/graalvm/compiler/core/match/MatchContext;
1 16 1 index I
4 16 2 emitBlockNodes Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
5 15 3 i I
7 13 4 node Lorg/graalvm/compiler/graph/Node;
8 13 5 cn Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
private org.graalvm.compiler.core.match.MatchPattern$Result verifyInputs();
descriptor: ()Lorg/graalvm/compiler/core/match/MatchPattern$Result;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.Node.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 1
start local 1 1: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
if_acmpeq 7
2: getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.find:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.ignoresSideEffects:Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.debug.DebugContext
StackMap stack:
aload 0
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchContext.verifyInputsDifferentBlock:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
astore 2
start local 2 4: aload 2
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
if_acmpne 6
5: getstatic org.graalvm.compiler.core.match.MatchContext.MatchContextSuccessDifferentBlocks:Lorg/graalvm/compiler/debug/CounterKey;
aload 1
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
6: StackMap locals: org.graalvm.compiler.core.match.MatchPattern$Result
StackMap stack:
aload 2
areturn
end local 2 7: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
astore 2
start local 2 8: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
iconst_1
iadd
istore 3
start local 3 9: goto 28
10: StackMap locals: java.util.List int
StackMap stack:
aload 2
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 4
start local 4 11: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 4
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.find:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
astore 5
start local 5 12: aload 5
ifnull 27
13: getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 14
aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.ignoresSideEffects:Z
ifne 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals: org.graalvm.compiler.graph.Node org.graalvm.compiler.core.match.MatchContext$ConsumedNode
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.graph.Node.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 7
goto 26
StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.debug.DebugContext java.util.List int org.graalvm.compiler.graph.Node org.graalvm.compiler.core.match.MatchContext$ConsumedNode top java.util.Iterator
StackMap stack:
15: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 16: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 6
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifne 26
17: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
iconst_1
iadd
istore 8
start local 8 18: goto 25
19: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.debug.DebugContext java.util.List int org.graalvm.compiler.graph.Node org.graalvm.compiler.core.match.MatchContext$ConsumedNode org.graalvm.compiler.graph.Node java.util.Iterator int
StackMap stack:
aload 2
iload 8
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aload 6
if_acmpne 24
20: aload 0
ldc "Earliest position in block is too late %s"
aload 6
invokevirtual org.graalvm.compiler.core.match.MatchContext.logFailedMatch:(Ljava/lang/String;Lorg/graalvm/compiler/graph/Node;)V
21: getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 22
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.find:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.ignoresSideEffects:Z
ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 23
aload 0
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchContext.verifyInputsDifferentBlock:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
if_acmpne 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getPattern:()Lorg/graalvm/compiler/core/match/MatchPattern;
invokestatic org.graalvm.compiler.core.match.MatchPattern$Result.tooLate:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/match/MatchPattern;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
24: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
25: iload 8
iload 3
if_icmplt 19
end local 8 end local 6 26: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.debug.DebugContext java.util.List int org.graalvm.compiler.graph.Node org.graalvm.compiler.core.match.MatchContext$ConsumedNode top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
end local 5 end local 4 27: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.debug.DebugContext java.util.List int
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
28: iload 3
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
if_icmple 10
end local 3 29: getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 30
aload 0
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchContext.verifyInputsDifferentBlock:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
if_acmpeq 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/graalvm/compiler/core/match/MatchContext;
1 31 1 debug Lorg/graalvm/compiler/debug/DebugContext;
4 7 2 result Lorg/graalvm/compiler/core/match/MatchPattern$Result;
8 31 2 nodes Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
9 29 3 i I
11 27 4 node Lorg/graalvm/compiler/graph/Node;
12 27 5 cn Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
16 26 6 in Lorg/graalvm/compiler/graph/Node;
18 26 8 j I
private org.graalvm.compiler.core.match.MatchPattern$Result verifyInputsDifferentBlock(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.graph.Node.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 3
goto 17
StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 2
start local 2 2: aload 2
instanceof org.graalvm.compiler.nodes.PhiNode
ifeq 6
3: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getNodeToBlockMap:()Lorg/graalvm/compiler/graph/NodeMap;
aload 2
checkcast org.graalvm.compiler.nodes.PhiNode
invokevirtual org.graalvm.compiler.nodes.PhiNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
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 4: aload 4
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
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 9
5: goto 17
end local 4 6: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getNodeToBlockMap:()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 7: aload 4
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokestatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.strictlyDominates:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifne 17
aload 4
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
if_acmpne 9
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
aload 2
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
if_icmpgt 9
8: goto 17
end local 4 9: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 2
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.find:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
astore 4
start local 4 10: aload 4
ifnonnull 13
11: aload 0
ldc "Earliest position in block is too late %s"
aload 2
invokevirtual org.graalvm.compiler.core.match.MatchContext.logFailedMatch:(Ljava/lang/String;Lorg/graalvm/compiler/graph/Node;)V
12: aload 1
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getPattern:()Lorg/graalvm/compiler/core/match/MatchPattern;
invokestatic org.graalvm.compiler.core.match.MatchPattern$Result.tooLate:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/match/MatchPattern;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
13: StackMap locals: org.graalvm.compiler.core.match.MatchContext$ConsumedNode
StackMap stack:
getstatic org.graalvm.compiler.core.match.MatchContext.$assertionsDisabled:Z
ifne 14
aload 4
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.ignoresSideEffects:Z
ifne 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.core.match.MatchContext.verifyInputsDifferentBlock:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
astore 5
start local 5 15: aload 5
getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
if_acmpeq 17
16: aload 5
areturn
end local 5 end local 4 end local 2 17: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
18: getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/core/match/MatchContext;
0 19 1 node Lorg/graalvm/compiler/graph/Node;
2 17 2 in Lorg/graalvm/compiler/graph/Node;
4 6 4 b Lorg/graalvm/compiler/nodes/cfg/Block;
7 9 4 b Lorg/graalvm/compiler/nodes/cfg/Block;
10 17 4 cn Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
15 17 5 res Lorg/graalvm/compiler/core/match/MatchPattern$Result;
MethodParameters:
Name Flags
node
private void logFailedMatch(java.lang.String, org.graalvm.compiler.graph.Node);
descriptor: (Ljava/lang/String;Lorg/graalvm/compiler/graph/Node;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.graalvm.compiler.debug.DebugOptions.LogVerbose:Lorg/graalvm/compiler/options/OptionKey;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.Node.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 27
1: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.Node.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 3
start local 3 2: aload 3
aload 1
aload 2
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
3: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
istore 4
start local 4 4: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
if_acmpeq 17
5: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
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.size:()I
iconst_1
isub
istore 5
start local 5 6: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
astore 6
start local 6 7: aload 3
ldc "%s:"
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
8: iload 4
istore 7
start local 7 9: goto 15
10: StackMap locals: org.graalvm.compiler.core.match.MatchContext java.lang.String org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext int int java.util.List int
StackMap stack:
aload 6
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 8
start local 8 11: aload 3
ldc "%s(%s) %1s"
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 8
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 12
ldc "*"
goto 13
StackMap locals: org.graalvm.compiler.core.match.MatchContext java.lang.String org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext int int java.util.List int org.graalvm.compiler.graph.Node
StackMap stack: org.graalvm.compiler.debug.DebugContext java.lang.String
12: ldc " "
StackMap locals: org.graalvm.compiler.core.match.MatchContext java.lang.String org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext int int java.util.List int org.graalvm.compiler.graph.Node
StackMap stack: org.graalvm.compiler.debug.DebugContext java.lang.String java.lang.String
13: aload 8
invokevirtual org.graalvm.compiler.graph.Node.getUsageCount:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 8
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 14: iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 5
if_icmple 10
end local 7 16: iconst_0
istore 4
end local 6 end local 5 17: StackMap locals:
StackMap stack:
aload 3
ldc "%s:"
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
18: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
astore 5
start local 5 19: iload 4
istore 6
start local 6 20: goto 26
21: StackMap locals: java.util.List int
StackMap stack:
aload 5
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 7
start local 7 22: aload 3
ldc "%s(%s) %1s"
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 7
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 23
ldc "*"
goto 24
StackMap locals: org.graalvm.compiler.core.match.MatchContext java.lang.String org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext int java.util.List int org.graalvm.compiler.graph.Node
StackMap stack: org.graalvm.compiler.debug.DebugContext java.lang.String
23: ldc " "
StackMap locals: org.graalvm.compiler.core.match.MatchContext java.lang.String org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext int java.util.List int org.graalvm.compiler.graph.Node
StackMap stack: org.graalvm.compiler.debug.DebugContext java.lang.String java.lang.String
24: aload 7
invokevirtual org.graalvm.compiler.graph.Node.getUsageCount:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 7 25: iinc 6 1
StackMap locals:
StackMap stack:
26: iload 6
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
if_icmple 21
end local 6 end local 5 end local 4 end local 3 27: StackMap locals: org.graalvm.compiler.core.match.MatchContext java.lang.String org.graalvm.compiler.graph.Node
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/graalvm/compiler/core/match/MatchContext;
0 28 1 s Ljava/lang/String;
0 28 2 node Lorg/graalvm/compiler/graph/Node;
2 27 3 debug Lorg/graalvm/compiler/debug/DebugContext;
4 27 4 startIndex I
6 17 5 endIndex I
7 17 6 emitBlockNodes Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
9 16 7 j I
11 14 8 theNode Lorg/graalvm/compiler/graph/Node;
19 27 5 nodes Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
20 27 6 j I
22 25 7 theNode Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
s
node
public void setResult(org.graalvm.compiler.core.match.ComplexMatchResult);
descriptor: (Lorg/graalvm/compiler/core/match/ComplexMatchResult;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.core.match.ComplexMatchValue
dup
aload 1
invokespecial org.graalvm.compiler.core.match.ComplexMatchValue.<init>:(Lorg/graalvm/compiler/core/match/ComplexMatchResult;)V
astore 2
start local 2 1: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.schedule:Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast java.util.List
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.Node.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 4
start local 4 3: aload 4
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 8
4: aload 4
ldc "matched %s %s%s"
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getName:()Ljava/lang/String;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getPattern:()Lorg/graalvm/compiler/core/match/MatchPattern;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
if_icmpeq 5
ldc " skipping side effects"
goto 6
StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.core.match.ComplexMatchResult org.graalvm.compiler.core.match.ComplexMatchValue org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext
StackMap stack: org.graalvm.compiler.debug.DebugContext java.lang.String java.lang.String org.graalvm.compiler.core.match.MatchPattern
5: ldc ""
StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.core.match.ComplexMatchResult org.graalvm.compiler.core.match.ComplexMatchValue org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext
StackMap stack: org.graalvm.compiler.debug.DebugContext java.lang.String java.lang.String org.graalvm.compiler.core.match.MatchPattern java.lang.String
6: invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 4
ldc "with nodes %s"
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.formatMatch:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.iterator:()Ljava/util/Iterator;
astore 6
goto 13
StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.core.match.ComplexMatchResult org.graalvm.compiler.core.match.ComplexMatchValue org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext top java.util.Iterator
StackMap stack:
9: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.match.MatchContext$ConsumedNode
astore 5
start local 5 10: aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
if_acmpeq 13
aload 5
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
aload 3
if_acmpne 12
11: goto 13
12: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.core.match.ComplexMatchResult org.graalvm.compiler.core.match.ComplexMatchValue org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.match.MatchContext$ConsumedNode java.util.Iterator
StackMap stack:
aload 0
aload 5
invokevirtual org.graalvm.compiler.core.match.MatchContext.setResult:(Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;)V
end local 5 13: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.core.match.ComplexMatchResult org.graalvm.compiler.core.match.ComplexMatchValue org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
14: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.builder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
aload 3
aload 2
invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.setMatchResult:(Lorg/graalvm/compiler/graph/Node;Ljdk/vm/ci/meta/Value;)V
15: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
aload 3
if_acmpeq 17
16: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.builder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
new org.graalvm.compiler.core.match.ComplexMatchValue
dup
aload 3
invokedynamic evaluate(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
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/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
org/graalvm/compiler/core/match/MatchContext.lambda$0(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (6)
(Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
invokespecial org.graalvm.compiler.core.match.ComplexMatchValue.<init>:(Lorg/graalvm/compiler/core/match/ComplexMatchResult;)V
invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.setMatchResult:(Lorg/graalvm/compiler/graph/Node;Ljdk/vm/ci/meta/Value;)V
17: StackMap locals: org.graalvm.compiler.core.match.MatchContext org.graalvm.compiler.core.match.ComplexMatchResult org.graalvm.compiler.core.match.ComplexMatchValue org.graalvm.compiler.graph.Node org.graalvm.compiler.debug.DebugContext
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/graalvm/compiler/core/match/MatchContext;
0 18 1 result Lorg/graalvm/compiler/core/match/ComplexMatchResult;
1 18 2 value Lorg/graalvm/compiler/core/match/ComplexMatchValue;
2 18 3 emitNode Lorg/graalvm/compiler/graph/Node;
3 18 4 debug Lorg/graalvm/compiler/debug/DebugContext;
10 13 5 cn Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
MethodParameters:
Name Flags
result
private void setResult(org.graalvm.compiler.core.match.MatchContext$ConsumedNode);
descriptor: (Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.node:Lorg/graalvm/compiler/graph/Node;
astore 2
start local 2 1: aload 1
getfield org.graalvm.compiler.core.match.MatchContext$ConsumedNode.singleUser:Z
ifeq 4
2: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.builder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
aload 2
getstatic org.graalvm.compiler.core.match.ComplexMatchValue.INTERIOR_MATCH:Ljdk/vm/ci/meta/Value;
invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.setMatchResult:(Lorg/graalvm/compiler/graph/Node;Ljdk/vm/ci/meta/Value;)V
3: return
4: StackMap locals: org.graalvm.compiler.graph.Node
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.builder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
aload 2
invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.incrementSharedMatchCount:(Lorg/graalvm/compiler/graph/Node;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/core/match/MatchContext;
0 6 1 consumedNode Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNode;
1 6 2 node Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
consumedNode
public org.graalvm.compiler.core.match.MatchPattern$Result consume(org.graalvm.compiler.graph.Node, boolean, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/graph/Node;ZZZ)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 3
ifeq 3
1: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 1
iload 2
iload 4
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.add:(Lorg/graalvm/compiler/graph/Node;ZZ)V
2: getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.builder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
aload 1
invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.hasOperand:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 5
4: aload 1
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
invokevirtual org.graalvm.compiler.core.match.MatchStatement.getPattern:()Lorg/graalvm/compiler/core/match/MatchPattern;
invokestatic org.graalvm.compiler.core.match.MatchPattern$Result.alreadyUsed:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/match/MatchPattern;)Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aload 1
iload 2
iload 4
invokevirtual org.graalvm.compiler.core.match.MatchContext$ConsumedNodes.add:(Lorg/graalvm/compiler/graph/Node;ZZ)V
6: getstatic org.graalvm.compiler.core.match.MatchPattern$Result.OK:Lorg/graalvm/compiler/core/match/MatchPattern$Result;
areturn
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/core/match/MatchContext;
0 7 1 node Lorg/graalvm/compiler/graph/Node;
0 7 2 ignoresSideEffects Z
0 7 3 atRoot Z
0 7 4 singleUser Z
MethodParameters:
Name Flags
node
ignoresSideEffects
atRoot
singleUser
public org.graalvm.compiler.graph.Node namedNode(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/compiler/graph/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.namedNodes:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnull 4
1: aload 0
getfield org.graalvm.compiler.core.match.MatchContext.namedNodes:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.core.match.MatchContext$NamedNode
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
getfield org.graalvm.compiler.core.match.MatchContext$NamedNode.value:Lorg/graalvm/compiler/graph/Node;
areturn
end local 2 4: StackMap locals:
StackMap stack:
new org.graalvm.compiler.debug.GraalError
dup
ldc "missing node %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/core/match/MatchContext;
0 5 1 name Ljava/lang/String;
2 4 2 value Lorg/graalvm/compiler/core/match/MatchContext$NamedNode;
MethodParameters:
Name Flags
name
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "%s %s (%s/%d, %s/%d) consumed %s"
bipush 7
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rule:Lorg/graalvm/compiler/core/match/MatchStatement;
aastore
dup
iconst_1
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.root:Lorg/graalvm/compiler/graph/Node;
aastore
dup
iconst_2
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
aastore
dup
iconst_3
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.rootIndex:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitBlock:Lorg/graalvm/compiler/nodes/cfg/Block;
aastore
dup
iconst_5
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.emitIndex:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
bipush 6
aload 0
getfield org.graalvm.compiler.core.match.MatchContext.consumed:Lorg/graalvm/compiler/core/match/MatchContext$ConsumedNodes;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/match/MatchContext;
private static jdk.vm.ci.meta.Value lambda$0(org.graalvm.compiler.graph.Node, org.graalvm.compiler.core.gen.NodeLIRBuilder);
descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 gen Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
}
SourceFile: "MatchContext.java"
NestMembers:
org.graalvm.compiler.core.match.MatchContext$ConsumedNode org.graalvm.compiler.core.match.MatchContext$ConsumedNodes org.graalvm.compiler.core.match.MatchContext$NamedNode
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
final ConsumedNode = org.graalvm.compiler.core.match.MatchContext$ConsumedNode of org.graalvm.compiler.core.match.MatchContext
final ConsumedNodes = org.graalvm.compiler.core.match.MatchContext$ConsumedNodes of org.graalvm.compiler.core.match.MatchContext
private NamedNode = org.graalvm.compiler.core.match.MatchContext$NamedNode of org.graalvm.compiler.core.match.MatchContext
Result = org.graalvm.compiler.core.match.MatchPattern$Result of org.graalvm.compiler.core.match.MatchPattern
public ScheduleResult = org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult of org.graalvm.compiler.nodes.StructuredGraph