public class org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor extends org.graalvm.compiler.virtual.phases.ea.EffectsClosure<BlockT>.MergeProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor
super_class: org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor
{
private jdk.internal.vm.compiler.collections.EconomicMap<java.lang.Object, org.graalvm.compiler.nodes.ValuePhiNode> materializedPhis;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Object;Lorg/graalvm/compiler/nodes/ValuePhiNode;>;
private jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValuePhiNode[]> valuePhis;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/ValuePhiNode;>;
private jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.virtual.VirtualObjectNode> valueObjectVirtuals;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;>;
private final boolean needsCaching;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure this$0;
descriptor: Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
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/virtual/phases/ea/PartialEscapeClosure;
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.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure, org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;Lorg/graalvm/compiler/nodes/cfg/Block;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
1: aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor.<init>:(Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure;Lorg/graalvm/compiler/nodes/cfg/Block;)V
2: aload 0
aload 2
invokevirtual org.graalvm.compiler.nodes.cfg.Block.isLoopHeader:()Z
putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
3: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 4 2 mergeBlock Lorg/graalvm/compiler/nodes/cfg/Block;
MethodParameters:
Name Flags
this$0 final
mergeBlock
protected <T> org.graalvm.compiler.nodes.PhiNode getPhi(T, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
ifeq 2
1: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhiCached:(Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 3 1 virtual TT;
0 3 2 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
Signature: <T:Ljava/lang/Object;>(TT;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
MethodParameters:
Name Flags
virtual
stamp
private <T> org.graalvm.compiler.nodes.PhiNode getPhiCached(T, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis: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.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis: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.nodes.ValuePhiNode
astore 3
start local 3 3: aload 3
ifnonnull 6
4: aload 0
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
astore 3
5: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
aload 3
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode
StackMap stack:
aload 3
areturn
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/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 7 1 virtual TT;
0 7 2 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
3 7 3 result Lorg/graalvm/compiler/nodes/ValuePhiNode;
Signature: <T:Ljava/lang/Object;>(TT;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
MethodParameters:
Name Flags
virtual
stamp
private org.graalvm.compiler.nodes.PhiNode[] getValuePhis(org.graalvm.compiler.nodes.ValueNode, int);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
ifeq 2
1: aload 0
aload 1
iload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValuePhisCached:(Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
areturn
2: StackMap locals:
StackMap stack:
iload 2
anewarray org.graalvm.compiler.nodes.ValuePhiNode
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 3 1 key Lorg/graalvm/compiler/nodes/ValueNode;
0 3 2 entryCount I
MethodParameters:
Name Flags
key
entryCount
private org.graalvm.compiler.nodes.PhiNode[] getValuePhisCached(org.graalvm.compiler.nodes.ValueNode, int);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnonnull 2
1: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY_WITH_SYSTEM_HASHCODE: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.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis: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.nodes.ValuePhiNode[]
astore 3
start local 3 3: aload 3
ifnonnull 6
4: iload 2
anewarray org.graalvm.compiler.nodes.ValuePhiNode
astore 3
5: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
aload 3
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode[]
StackMap stack:
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
ifne 7
aload 3
arraylength
iload 2
if_icmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 8 1 key Lorg/graalvm/compiler/nodes/ValueNode;
0 8 2 entryCount I
3 8 3 result [Lorg/graalvm/compiler/nodes/ValuePhiNode;
MethodParameters:
Name Flags
key
entryCount
private org.graalvm.compiler.nodes.virtual.VirtualObjectNode getValueObjectVirtual(org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.virtual.VirtualObjectNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
ifeq 2
1: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValueObjectVirtualCached:(Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.duplicate:()Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
astore 3
start local 3 3: aload 3
aload 2
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.setNodeSourcePosition:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)V
4: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 5 1 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 5 2 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
3 5 3 duplicate Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
MethodParameters:
Name Flags
phi
virtual
private org.graalvm.compiler.nodes.virtual.VirtualObjectNode getValueObjectVirtualCached(org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.virtual.VirtualObjectNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnonnull 2
1: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY: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.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals: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.nodes.virtual.VirtualObjectNode
astore 3
start local 3 3: aload 3
ifnonnull 7
4: aload 2
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.duplicate:()Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
astore 3
5: aload 3
aload 2
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.setNodeSourcePosition:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)V
6: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
aload 3
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 8 1 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 8 2 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
3 8 3 result Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
MethodParameters:
Name Flags
phi
virtual
protected void merge(java.util.List<BlockT>);
descriptor: (Ljava/util/List;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=21, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.size:()I
anewarray org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int
StackMap stack:
aload 2
iload 3
aload 1
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
aastore
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 3 6: aload 0
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.intersectVirtualObjects:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)[I
astore 3
start local 3 7: iconst_0
istore 4
start local 4 8: aconst_null
astore 5
start local 5 9: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.merge:Lorg/graalvm/compiler/nodes/AbstractMergeNode;
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 6
start local 6 10: aload 6
ifnull 26
aload 6
invokevirtual org.graalvm.compiler.nodes.FrameState.isExceptionHandlingBCI:()Z
ifeq 26
11: iconst_1
istore 4
12: aload 6
invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
iconst_1
if_icmpne 26
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.merge:Lorg/graalvm/compiler/nodes/AbstractMergeNode;
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.UnwindNode
ifeq 26
13: getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
ifne 14
aload 6
invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.merge:Lorg/graalvm/compiler/nodes/AbstractMergeNode;
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.UnwindNode
astore 7
start local 7 15: aload 7
invokevirtual org.graalvm.compiler.nodes.UnwindNode.exception:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
iconst_0
invokevirtual org.graalvm.compiler.nodes.FrameState.stackAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 26
16: iconst_1
istore 8
start local 8 17: iconst_0
istore 9
start local 9 18: goto 23
19: StackMap locals: org.graalvm.compiler.nodes.UnwindNode int int
StackMap stack:
aload 6
iload 9
invokevirtual org.graalvm.compiler.nodes.FrameState.localAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
ifnull 22
20: iconst_0
istore 8
21: goto 24
22: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
23: iload 9
aload 6
invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
if_icmplt 19
end local 9 24: StackMap locals:
StackMap stack:
iload 8
ifeq 26
25: aload 7
invokevirtual org.graalvm.compiler.nodes.UnwindNode.exception:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
end local 8 end local 7 26: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 27: iload 4
ifne 30
aload 2
invokestatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.identicalObjectStates:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
ifeq 30
28: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
aload 2
iconst_0
aaload
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.adoptAddObjectStates:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)V
29: goto 89
30: StackMap locals: int
StackMap stack:
aload 3
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 88
StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState int top int int int[]
StackMap stack:
31: aload 11
iload 9
iaload
istore 8
start local 8 32: iload 4
ifne 35
aload 2
iload 8
invokestatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.identicalObjectStates:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;I)Z
ifeq 35
33: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
iload 8
aload 2
iconst_0
aaload
iload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.share:()Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
34: goto 87
35: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState int int int int int[]
StackMap stack:
iconst_0
istore 12
start local 12 36: aload 2
iconst_0
aaload
iload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 13
start local 13 37: iconst_1
istore 14
start local 14 38: iconst_1
istore 15
start local 15 39: aload 13
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 40
aconst_null
goto 41
StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState int int int int int[] int org.graalvm.compiler.virtual.phases.ea.ObjectState int int
StackMap stack:
40: aload 13
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.ValueNode
41: astore 16
start local 16 42: iconst_0
istore 17
start local 17 43: goto 65
44: StackMap locals: org.graalvm.compiler.nodes.ValueNode int
StackMap stack:
aload 2
iload 17
aaload
iload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 18
start local 18 45: iload 15
aload 18
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEnsureVirtualized:()Z
iand
istore 15
46: iload 4
ifeq 57
47: aload 5
ifnonnull 50
48: aconst_null
astore 16
49: goto 64
50: StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState
StackMap stack:
aload 5
astore 19
start local 19 51: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.merge:Lorg/graalvm/compiler/nodes/AbstractMergeNode;
aload 19
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 53
52: aload 19
checkcast org.graalvm.compiler.nodes.ValuePhiNode
iload 17
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 19
53: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 19
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 20
start local 20 54: aload 20
instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
ifeq 57
aload 20
checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
iload 8
if_icmpne 57
55: aconst_null
astore 16
56: goto 64
end local 20 end local 19 57: StackMap locals:
StackMap stack:
aload 18
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 62
58: iinc 12 1
59: aconst_null
astore 16
60: iload 14
aload 18
aload 13
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.locksEqual:(Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;)Z
iand
istore 14
61: goto 64
StackMap locals:
StackMap stack:
62: aload 18
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 16
if_acmpeq 64
63: aconst_null
astore 16
end local 18 64: StackMap locals:
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
65: iload 17
aload 2
arraylength
if_icmplt 44
end local 17 66: iload 12
aload 2
arraylength
if_icmpne 69
iload 14
ifeq 69
67: iload 7
aload 0
iload 8
aconst_null
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeObjectStates:(I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
ior
istore 7
68: goto 87
69: StackMap locals:
StackMap stack:
aload 16
ifnull 72
70: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
iload 8
new org.graalvm.compiler.virtual.phases.ea.ObjectState
dup
aload 16
aconst_null
iload 15
invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
71: goto 87
72: StackMap locals:
StackMap stack:
aload 0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhi:(Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
astore 17
start local 17 73: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
aload 17
ldc "materializedPhi"
invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.addFloatingNode:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/lang/String;)V
74: iconst_0
istore 18
start local 18 75: goto 85
76: StackMap locals: org.graalvm.compiler.nodes.PhiNode int
StackMap stack:
aload 2
iload 18
aaload
iload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 19
start local 19 77: aload 19
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 83
78: aload 0
iload 18
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
astore 20
start local 20 79: iload 15
ifne 81
aload 19
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 81
80: aload 19
iconst_0
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.setEnsureVirtualized:(Z)V
81: StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
iload 7
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 2
iload 18
aaload
iload 8
aload 20
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 20
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_MERGE:Lorg/graalvm/compiler/debug/CounterKey;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/CounterKey;)Z
ior
istore 7
82: aload 2
iload 18
aaload
iload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 19
end local 20 83: StackMap locals:
StackMap stack:
aload 0
aload 17
iload 18
aload 19
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
end local 19 84: iinc 18 1
StackMap locals:
StackMap stack:
85: iload 18
aload 2
arraylength
if_icmplt 76
end local 18 86: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
iload 8
new org.graalvm.compiler.virtual.phases.ea.ObjectState
dup
aload 17
aconst_null
iconst_0
invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 8 87: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState int top int int int[]
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
88: iload 9
iload 10
if_icmplt 31
89: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState int
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 9
goto 94
StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState int top java.util.Iterator
StackMap stack:
90: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 8
start local 8 91: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.aliases:Lorg/graalvm/compiler/graph/NodeMap;
aload 8
aconst_null
invokevirtual org.graalvm.compiler.graph.NodeMap.set:(Lorg/graalvm/compiler/graph/Node;Ljava/lang/Object;)V
92: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.hasVirtualInputs:Lorg/graalvm/compiler/graph/NodeBitMap;
aload 8
invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 94
aload 8
instanceof org.graalvm.compiler.nodes.ValuePhiNode
ifeq 94
93: iload 7
aload 0
aload 8
checkcast org.graalvm.compiler.nodes.ValuePhiNode
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.processPhi:(Lorg/graalvm/compiler/nodes/ValuePhiNode;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
ior
istore 7
end local 8 94: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 90
95: iload 7
ifeq 99
96: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.resetObjectStates:(I)V
97: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.clear:()V
98: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.afterMergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.clear:()V
99: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.FrameState int
StackMap stack:
iload 7
ifne 26
100: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 101 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 101 1 statesList Ljava/util/List<TBlockT;>;
1 101 2 states [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
2 6 3 i I
7 101 3 virtualObjTemp [I
8 101 4 forceMaterialization Z
9 101 5 forcedMaterializationValue Lorg/graalvm/compiler/nodes/ValueNode;
10 101 6 frameState Lorg/graalvm/compiler/nodes/FrameState;
15 26 7 unwind Lorg/graalvm/compiler/nodes/UnwindNode;
17 26 8 nullLocals Z
18 24 9 i I
27 101 7 materialized Z
32 87 8 object I
36 87 12 virtualCount I
37 87 13 startObj Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
38 87 14 locksMatch Z
39 87 15 ensureVirtual Z
42 87 16 uniqueMaterializedValue Lorg/graalvm/compiler/nodes/ValueNode;
43 66 17 i I
45 64 18 obj Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
51 57 19 value Lorg/graalvm/compiler/nodes/ValueNode;
54 57 20 alias Lorg/graalvm/compiler/nodes/ValueNode;
73 87 17 materializedValuePhi Lorg/graalvm/compiler/nodes/PhiNode;
75 86 18 i I
77 84 19 obj Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
79 83 20 predecessor Lorg/graalvm/compiler/nodes/cfg/Block;
91 94 8 phi Lorg/graalvm/compiler/nodes/PhiNode;
Signature: (Ljava/util/List<TBlockT;>;)V
MethodParameters:
Name Flags
statesList
private int[] intersectVirtualObjects(org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[]);
descriptor: ([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)[I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
aaload
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getStateCount:()I
istore 2
start local 2 1: iconst_1
istore 3
start local 3 2: goto 5
3: StackMap locals: int int
StackMap stack:
iload 2
aload 1
iload 3
aaload
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getStateCount:()I
invokestatic java.lang.Math.min:(II)I
istore 2
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 1
arraylength
if_icmplt 3
end local 3 6: iconst_0
istore 3
start local 3 7: iconst_0
istore 4
start local 4 8: goto 12
9: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.intersectObjectState:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;I)Z
ifeq 11
10: iinc 3 1
11: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
iload 2
if_icmplt 9
end local 4 13: iconst_0
istore 4
start local 4 14: iload 3
newarray 10
astore 5
start local 5 15: iconst_0
istore 6
start local 6 16: goto 20
17: StackMap locals: int[] int
StackMap stack:
aload 0
aload 1
iload 6
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.intersectObjectState:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;I)Z
ifeq 19
18: aload 5
iload 4
iinc 4 1
iload 6
iastore
19: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
20: iload 6
iload 2
if_icmplt 17
end local 6 21: getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
ifne 22
iload 4
iload 3
if_icmpeq 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
aload 5
areturn
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 23 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 23 1 states [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
1 23 2 length I
2 6 3 i I
7 23 3 count I
8 13 4 objectIndex I
14 23 4 index I
15 23 5 resultInts [I
16 21 6 objectIndex I
Signature: ([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;)[I
MethodParameters:
Name Flags
states
private boolean intersectObjectState(org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[], );
descriptor: ([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 6
2: StackMap locals: int
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 3: aload 4
iload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectStateOptional:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
ifnonnull 5
4: iconst_0
ireturn
end local 4 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 1
arraylength
if_icmplt 2
end local 3 7: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 8 1 states [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
0 8 2 objectIndex I
1 7 3 i I
3 5 4 state Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;
Signature: ([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;I)Z
MethodParameters:
Name Flags
states
objectIndex
private boolean mergeObjectStates(int, int[], org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[]);
descriptor: (I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=20, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_1
istore 4
start local 4 1: iconst_1
istore 5
start local 5 2: aload 2
iload 1
invokedynamic applyAsInt([II)Ljava/util/function/IntUnaryOperator;
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:
(I)I
org/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor.lambda$0([III)I (6)
(I)I
astore 6
start local 6 3: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
astore 7
start local 7 4: aload 7
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
istore 8
start local 8 5: aconst_null
astore 9
start local 9 6: aconst_null
astore 10
start local 10 7: aconst_null
astore 11
start local 11 8: iconst_0
istore 12
start local 12 9: goto 48
10: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntUnaryOperator org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[] int[] jdk.vm.ci.meta.JavaKind[] int
StackMap stack:
aload 3
iload 12
aaload
aload 6
iload 12
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 13
start local 13 11: aload 13
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntries:()[Lorg/graalvm/compiler/nodes/ValueNode;
astore 14
start local 14 12: iconst_0
istore 15
start local 15 13: iload 5
aload 13
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEnsureVirtualized:()Z
iand
istore 5
14: goto 46
15: StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState org.graalvm.compiler.nodes.ValueNode[] int
StackMap stack:
aload 14
iload 15
aaload
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
astore 16
start local 16 16: aload 7
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
iload 15
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;I)Ljdk/vm/ci/meta/JavaKind;
astore 17
start local 17 17: aload 17
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 26
aload 16
invokevirtual jdk.vm.ci.meta.JavaKind.needsTwoSlots:()Z
ifeq 26
18: aload 9
ifnonnull 20
19: iload 8
anewarray jdk.vm.ci.meta.JavaKind
astore 9
20: StackMap locals: jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind
StackMap stack:
aload 9
iload 15
aaload
ifnull 23
aload 9
iload 15
aaload
aload 16
if_acmpeq 23
21: iconst_0
istore 4
22: goto 49
23: StackMap locals:
StackMap stack:
aload 9
iload 15
aload 16
aastore
24: iinc 15 1
25: goto 45
StackMap locals:
StackMap stack:
26: aload 7
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.isVirtualByteArray:(Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Z
ifeq 43
27: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
aload 14
iload 15
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getVirtualByteCount:([Lorg/graalvm/compiler/nodes/ValueNode;I)I
istore 18
start local 18 28: iload 18
iconst_1
if_icmple 45
29: aload 10
ifnonnull 31
30: iload 8
newarray 10
astore 10
31: StackMap locals: int
StackMap stack:
aload 11
ifnonnull 33
32: iload 8
anewarray jdk.vm.ci.meta.JavaKind
astore 11
33: StackMap locals:
StackMap stack:
aload 10
iload 15
iaload
ifeq 36
aload 10
iload 15
iaload
iload 18
if_icmpeq 36
34: iconst_0
istore 4
35: goto 49
36: StackMap locals:
StackMap stack:
aload 11
iload 15
aaload
ifnull 39
aload 11
iload 15
aaload
aload 16
if_acmpeq 39
37: iconst_0
istore 4
38: goto 49
39: StackMap locals:
StackMap stack:
aload 10
iload 15
iload 18
iastore
40: aload 11
iload 15
aload 16
aastore
41: iload 15
iload 18
iadd
iconst_1
isub
istore 15
end local 18 42: goto 45
43: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
ifne 45
aload 17
invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
aload 16
invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 45
aload 17
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 44
aload 16
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 45
44: StackMap locals:
StackMap stack:
aload 17
invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
aload 16
invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
if_icmpge 45
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 17
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 16
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
45: StackMap locals:
StackMap stack:
iinc 15 1
end local 17 end local 16 46: StackMap locals:
StackMap stack:
iload 15
iload 8
if_icmplt 15
end local 15 end local 14 end local 13 47: iinc 12 1
StackMap locals:
StackMap stack:
48: iload 12
aload 3
arraylength
if_icmplt 10
end local 12 49: StackMap locals:
StackMap stack:
iload 4
ifeq 75
aload 9
ifnull 75
50: iconst_0
istore 12
start local 12 51: goto 74
52: StackMap locals: int
StackMap stack:
aload 9
iload 12
aaload
ifnull 73
53: getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
ifne 56
iload 12
aload 7
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
iconst_1
isub
if_icmpge 55
aload 7
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
iload 12
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;I)Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 55
54: aload 7
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
iload 12
iconst_1
iadd
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;I)Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 56
StackMap locals:
StackMap stack:
55: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
56: StackMap locals:
StackMap stack:
iconst_0
istore 13
start local 13 57: goto 72
58: StackMap locals: int
StackMap stack:
aload 6
iload 13
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
istore 14
start local 14 59: aload 3
iload 13
aaload
iload 14
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 15
start local 15 60: aload 15
iload 12
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 16
start local 16 61: aload 16
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
astore 17
start local 17 62: aload 17
aload 9
iload 12
aaload
if_acmpeq 71
63: aload 15
iload 12
iconst_1
iadd
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 18
start local 18 64: aload 16
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 69
aload 16
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
getstatic jdk.vm.ci.meta.JavaConstant.INT_0:Ljdk/vm/ci/meta/PrimitiveConstant;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 69
aload 18
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 69
aload 18
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
getstatic jdk.vm.ci.meta.JavaConstant.INT_0:Ljdk/vm/ci/meta/PrimitiveConstant;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 69
65: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Rewriting entry %s to constant of larger size"
iload 12
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
66: aload 3
iload 13
aaload
iload 14
iload 12
aload 9
iload 12
aaload
aload 0
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.defaultForKind:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
67: aload 3
iload 13
aaload
iload 14
iload 12
iconst_1
iadd
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getIllegalConstant:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
68: goto 71
69: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntUnaryOperator org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[] int[] jdk.vm.ci.meta.JavaKind[] int int int org.graalvm.compiler.virtual.phases.ea.ObjectState org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.ValueNode
StackMap stack:
iconst_0
istore 4
70: goto 75
end local 18 end local 17 end local 16 end local 15 end local 14 71: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntUnaryOperator org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[] int[] jdk.vm.ci.meta.JavaKind[] int int
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
72: iload 13
aload 3
arraylength
if_icmplt 58
end local 13 73: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
74: iload 12
iload 8
if_icmplt 52
end local 12 75: StackMap locals:
StackMap stack:
iload 4
ifeq 100
aload 10
ifnull 100
76: getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
ifne 77
aload 9
ifnull 77
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
77: StackMap locals:
StackMap stack:
iconst_0
istore 12
start local 12 78: goto 99
79: StackMap locals: int
StackMap stack:
aload 10
iload 12
iaload
ifeq 98
80: aload 10
iload 12
iaload
istore 13
start local 13 81: iconst_0
istore 14
start local 14 82: goto 97
83: StackMap locals: int int
StackMap stack:
aload 6
iload 14
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
istore 15
start local 15 84: aload 3
iload 14
aaload
iload 15
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 16
start local 16 85: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
aload 16
iload 13
iload 12
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.isEntryDefaults:(Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;II)Z
ifeq 93
86: aload 3
iload 14
aaload
iload 15
iload 12
aload 11
iload 12
aaload
invokestatic org.graalvm.compiler.nodes.ConstantNode.defaultForKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ConstantNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
87: iload 12
iconst_1
iadd
istore 17
start local 17 88: goto 91
89: StackMap locals: int org.graalvm.compiler.virtual.phases.ea.ObjectState int
StackMap stack:
aload 3
iload 14
aaload
iload 15
iload 17
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getIllegalConstant:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
90: iinc 17 1
StackMap locals:
StackMap stack:
91: iload 17
iload 12
iload 13
iadd
if_icmplt 89
end local 17 92: goto 96
93: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
aload 16
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntries:()[Lorg/graalvm/compiler/nodes/ValueNode;
iload 12
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getVirtualByteCount:([Lorg/graalvm/compiler/nodes/ValueNode;I)I
iload 13
if_icmpeq 96
94: iconst_0
istore 4
95: goto 100
end local 16 end local 15 96: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
97: iload 14
aload 3
arraylength
if_icmplt 83
end local 14 end local 13 98: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
99: iload 12
iload 8
if_icmplt 79
end local 12 100: StackMap locals:
StackMap stack:
iload 4
ifeq 143
101: aload 3
iconst_0
aaload
aload 6
iconst_0
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntries:()[Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode[].clone:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode[]
astore 12
start local 12 102: aload 0
aload 7
aload 7
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValuePhis:(Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
astore 13
start local 13 103: iconst_0
istore 14
start local 14 104: goto 120
105: StackMap locals: org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.PhiNode[] int
StackMap stack:
iconst_1
istore 15
start local 15 106: goto 112
107: StackMap locals: int
StackMap stack:
aload 13
iload 14
aaload
ifnonnull 111
108: aload 3
iload 15
aaload
aload 6
iload 15
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
iload 14
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 16
start local 16 109: aload 12
iload 14
aaload
aload 16
if_acmpeq 111
110: aload 13
iload 14
aload 0
aload 12
iload 14
aaload
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;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
aastore
end local 16 111: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
112: iload 15
aload 3
arraylength
if_icmplt 107
end local 15 113: aload 13
iload 14
aaload
ifnull 115
aload 13
iload 14
aaload
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 12
iload 14
aaload
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 115
114: aload 13
iload 14
aload 0
aload 12
iload 14
aaload
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;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
aastore
115: StackMap locals:
StackMap stack:
aload 9
ifnull 119
aload 9
iload 14
aaload
ifnull 119
116: iinc 14 1
117: aload 13
iload 14
aconst_null
aastore
118: aload 12
iload 14
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getIllegalConstant:()Lorg/graalvm/compiler/nodes/ValueNode;
aastore
119: StackMap locals:
StackMap stack:
iinc 14 1
120: StackMap locals:
StackMap stack:
iload 14
aload 12
arraylength
if_icmplt 105
121: iconst_0
istore 15
start local 15 122: iconst_0
istore 16
start local 16 123: goto 140
124: StackMap locals: int int
StackMap stack:
aload 13
iload 16
aaload
astore 17
start local 17 125: aload 17
ifnull 139
126: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
aload 17
ldc "virtualMergePhi"
invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.addFloatingNode:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/lang/String;)V
127: aload 7
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
iload 16
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;I)Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 130
128: iload 15
aload 0
aload 6
aload 3
aload 17
iload 16
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeObjectEntry:(Ljava/util/function/IntUnaryOperator;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;Lorg/graalvm/compiler/nodes/PhiNode;I)Z
ior
istore 15
129: goto 138
130: StackMap locals: org.graalvm.compiler.nodes.PhiNode
StackMap stack:
iconst_0
istore 18
start local 18 131: goto 137
132: StackMap locals: int
StackMap stack:
aload 3
iload 18
aaload
aload 6
iload 18
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 19
start local 19 133: aload 19
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifne 135
134: goto 138
135: StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState
StackMap stack:
aload 0
aload 17
iload 18
aload 19
iload 16
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
end local 19 136: iinc 18 1
StackMap locals:
StackMap stack:
137: iload 18
aload 3
arraylength
if_icmplt 132
end local 18 138: StackMap locals:
StackMap stack:
aload 12
iload 16
aload 17
aastore
end local 17 139: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
140: iload 16
aload 12
arraylength
if_icmplt 124
end local 16 141: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
iload 1
new org.graalvm.compiler.virtual.phases.ea.ObjectState
dup
aload 12
aload 3
iconst_0
aaload
aload 6
iconst_0
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getLocks:()Lorg/graalvm/compiler/nodes/virtual/LockState;
iload 5
invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:([Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
142: iload 15
ireturn
end local 15 end local 14 end local 13 end local 12 143: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntUnaryOperator org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[] int[] jdk.vm.ci.meta.JavaKind[]
StackMap stack:
aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhi:(Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
astore 12
start local 12 144: iconst_0
istore 13
start local 13 145: goto 152
146: StackMap locals: org.graalvm.compiler.nodes.PhiNode int
StackMap stack:
aload 0
iload 13
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
astore 14
start local 14 147: iload 5
ifne 149
aload 3
iload 13
aaload
aload 6
iload 13
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 149
148: aload 3
iload 13
aaload
aload 6
iload 13
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
iconst_0
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.setEnsureVirtualized:(Z)V
149: StackMap locals: org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 3
iload 13
aaload
aload 6
iload 13
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
aload 14
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 14
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_MERGE:Lorg/graalvm/compiler/debug/CounterKey;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/CounterKey;)Z
pop
150: aload 0
aload 12
iload 13
aload 3
iload 13
aaload
aload 6
iload 13
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
end local 14 151: iinc 13 1
StackMap locals:
StackMap stack:
152: iload 13
aload 3
arraylength
if_icmplt 146
end local 13 153: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
iload 1
new org.graalvm.compiler.virtual.phases.ea.ObjectState
dup
aload 12
aconst_null
iload 5
invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
154: iconst_1
ireturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 155 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 155 1 resultObject I
0 155 2 sourceObjects [I
0 155 3 states [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
1 155 4 compatible Z
2 155 5 ensureVirtual Z
3 155 6 getObject Ljava/util/function/IntUnaryOperator;
4 155 7 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
5 155 8 entryCount I
6 155 9 twoSlotKinds [Ljdk/vm/ci/meta/JavaKind;
7 155 10 virtualByteCount [I
8 155 11 virtualKinds [Ljdk/vm/ci/meta/JavaKind;
9 49 12 i I
11 47 13 objectState Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
12 47 14 entries [Lorg/graalvm/compiler/nodes/ValueNode;
13 47 15 valueIndex I
16 46 16 otherKind Ljdk/vm/ci/meta/JavaKind;
17 46 17 entryKind Ljdk/vm/ci/meta/JavaKind;
28 42 18 bytecount I
51 75 12 valueIndex I
57 73 13 i I
59 71 14 object I
60 71 15 objectState Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
61 71 16 value Lorg/graalvm/compiler/nodes/ValueNode;
62 71 17 valueKind Ljdk/vm/ci/meta/JavaKind;
64 71 18 nextValue Lorg/graalvm/compiler/nodes/ValueNode;
78 100 12 valueIndex I
81 98 13 byteCount I
82 98 14 i I
84 96 15 object I
85 96 16 objectState Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
88 92 17 illegalIndex I
102 143 12 values [Lorg/graalvm/compiler/nodes/ValueNode;
103 143 13 phis [Lorg/graalvm/compiler/nodes/PhiNode;
104 143 14 valueIndex I
106 113 15 i I
109 111 16 field Lorg/graalvm/compiler/nodes/ValueNode;
122 143 15 materialized Z
123 141 16 i I
125 139 17 phi Lorg/graalvm/compiler/nodes/PhiNode;
131 138 18 i2 I
133 136 19 state Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
144 155 12 materializedValuePhi Lorg/graalvm/compiler/nodes/PhiNode;
145 153 13 i I
147 151 14 predecessor Lorg/graalvm/compiler/nodes/cfg/Block;
Signature: (I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;)Z
MethodParameters:
Name Flags
resultObject
sourceObjects
states
private boolean mergeObjectEntry(java.util.function.IntUnaryOperator, org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[], org.graalvm.compiler.nodes.PhiNode, );
descriptor: (Ljava/util/function/IntUnaryOperator;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;Lorg/graalvm/compiler/nodes/PhiNode;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_0
istore 5
start local 5 1: iconst_0
istore 6
start local 6 2: goto 17
3: StackMap locals: int int
StackMap stack:
aload 1
iload 6
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
istore 7
start local 7 4: aload 2
iload 6
aaload
iload 7
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 8
start local 8 5: aload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifne 7
6: goto 18
7: StackMap locals: int org.graalvm.compiler.virtual.phases.ea.ObjectState
StackMap stack:
aload 8
iload 4
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
start local 9 8: aload 9
instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
ifeq 15
9: aload 9
checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
astore 10
start local 10 10: aload 0
iload 6
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
astore 11
start local 11 11: iload 5
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 2
iload 6
aaload
aload 10
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
aload 11
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 11
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_MERGE:Lorg/graalvm/compiler/debug/CounterKey;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/CounterKey;)Z
ior
istore 5
12: aload 2
iload 6
aaload
iload 7
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 8
13: aload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 15
14: aload 2
iload 6
aaload
iload 7
iload 4
aload 2
iload 6
aaload
aload 10
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
dup
astore 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
end local 11 end local 10 15: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
aload 3
iload 6
aload 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
end local 9 end local 8 end local 7 16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
aload 2
arraylength
if_icmplt 3
end local 6 18: StackMap locals:
StackMap stack:
iload 5
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 19 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 19 1 objectIdFunc Ljava/util/function/IntUnaryOperator;
0 19 2 states [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
0 19 3 phi Lorg/graalvm/compiler/nodes/PhiNode;
0 19 4 entryIndex I
1 19 5 materialized Z
2 18 6 i I
4 16 7 object I
5 16 8 objectState Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
8 16 9 entry Lorg/graalvm/compiler/nodes/ValueNode;
10 15 10 entryVirtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
11 15 11 predecessor Lorg/graalvm/compiler/nodes/cfg/Block;
Signature: (Ljava/util/function/IntUnaryOperator;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;Lorg/graalvm/compiler/nodes/PhiNode;I)Z
MethodParameters:
Name Flags
objectIdFunc
states
phi
entryIndex
private boolean processPhi(org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[]);
descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=12, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iconst_1
istore 4
start local 4 2: iconst_1
istore 5
start local 5 3: aload 2
arraylength
anewarray org.graalvm.compiler.nodes.virtual.VirtualObjectNode
astore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 20
6: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode[] int
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 0
aload 1
iload 7
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhiValueAt:(Lorg/graalvm/compiler/nodes/PhiNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 7: aload 8
instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
ifeq 19
8: aload 8
checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
astore 9
start local 9 9: aload 6
iload 7
aload 9
aastore
10: aload 2
iload 7
aaload
aload 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectStateOptional:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
astore 10
start local 10 11: aload 10
ifnonnull 14
12: getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
ifne 13
aload 0
aload 1
iload 7
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhiValueAt:(Lorg/graalvm/compiler/nodes/PhiNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.PhiNode
ifne 13
new java.lang.AssertionError
dup
ldc "this should only happen for phi nodes"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.virtual.VirtualObjectNode org.graalvm.compiler.virtual.phases.ea.ObjectState
StackMap stack:
iconst_0
ireturn
14: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 19
15: aload 6
iconst_0
aaload
aload 8
if_acmpeq 17
16: iconst_0
istore 4
17: StackMap locals:
StackMap stack:
iload 5
aload 10
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEnsureVirtualized:()Z
iand
istore 5
18: iinc 3 1
end local 10 end local 9 end local 8 19: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
20: iload 7
aload 2
arraylength
if_icmplt 6
end local 7 21: iload 3
aload 2
arraylength
if_icmpne 66
22: iload 4
ifeq 26
23: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 6
iconst_0
aaload
aload 1
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.addVirtualAlias:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
24: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
aload 1
invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.deleteNode:(Lorg/graalvm/compiler/graph/Node;)V
25: iconst_0
ireturn
26: StackMap locals:
StackMap stack:
iconst_1
istore 7
start local 7 27: aload 6
iconst_0
aaload
astore 8
start local 8 28: iconst_0
istore 9
start local 9 29: goto 38
30: StackMap locals: int org.graalvm.compiler.nodes.virtual.VirtualObjectNode int
StackMap stack:
aload 6
iload 9
aaload
astore 10
start local 10 31: aload 8
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 10
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 32
aload 8
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
aload 10
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
if_icmpeq 34
32: StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode
StackMap stack:
iconst_0
istore 7
33: goto 39
34: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
aload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
aload 2
iload 9
aaload
aload 10
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.locksEqual:(Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;)Z
ifne 37
35: iconst_0
istore 7
36: goto 39
end local 10 37: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
38: iload 9
aload 2
arraylength
if_icmplt 30
end local 9 39: StackMap locals:
StackMap stack:
iload 7
ifeq 48
40: iconst_0
istore 9
start local 9 41: goto 47
42: StackMap locals: int
StackMap stack:
aload 6
iload 9
aaload
astore 10
start local 10 43: aload 10
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.hasIdentity:()Z
ifeq 46
aload 0
aload 0
aload 1
iload 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhiValueAt:(Lorg/graalvm/compiler/nodes/PhiNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
aload 2
iload 9
aaload
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.isSingleUsageAllocation:(Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
ifne 46
44: iconst_0
istore 7
45: goto 48
end local 10 46: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
47: iload 9
aload 2
arraylength
if_icmplt 42
end local 9 48: StackMap locals:
StackMap stack:
iload 7
ifeq 66
49: aload 0
aload 1
aload 6
iconst_0
aaload
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValueObjectVirtual:(Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
astore 9
start local 9 50: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
aload 9
ldc "valueObjectNode"
invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.addFloatingNode:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/lang/String;)V
51: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
aload 1
invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.deleteNode:(Lorg/graalvm/compiler/graph/Node;)V
52: aload 9
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
iconst_m1
if_icmpne 56
53: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 10
start local 10 54: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
aload 9
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
55: aload 9
iload 10
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.setObjectId:(I)V
end local 10 56: StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode
StackMap stack:
aload 2
arraylength
newarray 10
astore 10
start local 10 57: iconst_0
istore 11
start local 11 58: goto 61
59: StackMap locals: int[] int
StackMap stack:
aload 10
iload 11
aload 6
iload 11
aaload
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
iastore
60: iinc 11 1
StackMap locals:
StackMap stack:
61: iload 11
aload 2
arraylength
if_icmplt 59
end local 11 62: aload 0
aload 9
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
aload 10
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeObjectStates:(I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
istore 11
start local 11 63: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 9
aload 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.addVirtualAlias:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
64: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 9
aload 1
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.addVirtualAlias:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
65: iload 11
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 66: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode[]
StackMap stack:
iconst_0
istore 7
start local 7 67: iload 3
ifle 78
68: iconst_0
istore 8
start local 8 69: goto 77
70: StackMap locals: int int
StackMap stack:
aload 6
iload 8
aaload
astore 9
start local 9 71: aload 9
ifnull 76
72: aload 0
iload 8
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
astore 10
start local 10 73: iload 5
ifne 75
aload 2
iload 8
aaload
aload 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
ifeq 75
74: aload 2
iload 8
aaload
aload 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
iconst_0
invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.setEnsureVirtualized:(Z)V
75: StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
iload 7
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 2
iload 8
aaload
aload 9
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
aload 10
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 10
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_PHI:Lorg/graalvm/compiler/debug/CounterKey;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/CounterKey;)Z
ior
istore 7
end local 10 end local 9 76: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
77: iload 8
aload 2
arraylength
if_icmplt 70
end local 8 78: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 79: goto 84
80: StackMap locals: int
StackMap stack:
aload 6
iload 8
aaload
astore 9
start local 9 81: aload 9
ifnull 83
82: aload 0
aload 1
iload 8
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
aload 2
iload 8
aaload
aload 9
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.getAliasAndResolve:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
end local 9 83: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
84: iload 8
aload 2
arraylength
if_icmplt 80
end local 8 85: iload 7
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 86 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 86 1 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 86 2 states [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
1 86 3 virtualInputs I
2 86 4 uniqueVirtualObject Z
3 86 5 ensureVirtual Z
4 86 6 virtualObjs [Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
5 21 7 i I
7 19 8 alias Lorg/graalvm/compiler/nodes/ValueNode;
9 19 9 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
11 19 10 objectState Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
27 66 7 compatible Z
28 66 8 firstVirtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
29 39 9 i I
31 37 10 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
41 48 9 i I
43 46 10 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
50 66 9 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
54 56 10 id I
57 66 10 virtualObjectIds [I
58 62 11 i I
63 66 11 materialized Z
67 86 7 materialized Z
69 78 8 i I
71 76 9 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
73 76 10 predecessor Lorg/graalvm/compiler/nodes/cfg/Block;
79 85 8 i I
81 83 9 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
Signature: (Lorg/graalvm/compiler/nodes/ValuePhiNode;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;)Z
MethodParameters:
Name Flags
phi
states
private boolean isSingleUsageAllocation(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.virtual.VirtualObjectNode[], org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
instanceof org.graalvm.compiler.nodes.virtual.AllocatedObjectNode
ifeq 1
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.hasExactlyOneUsage:()Z
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 12
5: StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode int
StackMap stack:
aload 3
aload 2
iload 5
aaload
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.contains:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Z
ifeq 11
6: aload 4
ifnonnull 9
7: aload 2
iload 5
aaload
astore 4
8: goto 11
StackMap locals:
StackMap stack:
9: aload 4
aload 2
iload 5
aaload
if_acmpeq 11
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
aload 2
arraylength
if_icmplt 5
end local 5 13: iconst_1
ireturn
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/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
0 14 1 value Lorg/graalvm/compiler/nodes/ValueNode;
0 14 2 virtualObjs [Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
0 14 3 state Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;
3 14 4 singleVirtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
4 13 5 v I
Signature: (Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;)Z
MethodParameters:
Name Flags
value
virtualObjs
state
private static int lambda$0(int[], int, int);
descriptor: ([III)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 2 0: aload 0
ifnonnull 1
iload 1
goto 2
StackMap locals:
StackMap stack:
1: aload 0
iload 2
iaload
StackMap locals:
StackMap stack: int
2: ireturn
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 3 2 index I
}
Signature: Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure<TBlockT;>.MergeProcessor;
SourceFile: "PartialEscapeClosure.java"
NestHost: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
protected abstract MergeProcessor = org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor of org.graalvm.compiler.virtual.phases.ea.EffectsClosure
protected MergeProcessor = org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor of org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure