public class org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase extends org.graalvm.compiler.virtual.phases.ea.EffectsPhase<org.graalvm.compiler.phases.tiers.PhaseContext>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase
super_class: org.graalvm.compiler.virtual.phases.ea.EffectsPhase
{
private final boolean readElimination;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.phases.BasePhase<org.graalvm.compiler.phases.tiers.PhaseContext> cleanupPhase;
descriptor: Lorg/graalvm/compiler/phases/BasePhase;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/compiler/phases/BasePhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;
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/PartialEscapePhase;
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.PartialEscapePhase.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(boolean, org.graalvm.compiler.phases.common.CanonicalizerPhase);
descriptor: (ZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase$Options.OptEarlyReadElimination:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
aload 2
aconst_null
invokespecial org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.<init>:(ZZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapePhase;
0 2 1 iterative Z
0 2 2 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
MethodParameters:
Name Flags
iterative
canonicalizer
public void <init>(boolean, org.graalvm.compiler.phases.common.CanonicalizerPhase, org.graalvm.compiler.phases.BasePhase<org.graalvm.compiler.phases.tiers.PhaseContext>);
descriptor: (ZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase$Options.OptEarlyReadElimination:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
aload 2
aload 3
invokespecial org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.<init>:(ZZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapePhase;
0 2 1 iterative Z
0 2 2 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
0 2 3 cleanupPhase Lorg/graalvm/compiler/phases/BasePhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;
Signature: (ZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;)V
MethodParameters:
Name Flags
iterative
canonicalizer
cleanupPhase
public void <init>(boolean, boolean, org.graalvm.compiler.phases.common.CanonicalizerPhase, org.graalvm.compiler.phases.BasePhase<org.graalvm.compiler.phases.tiers.PhaseContext>);
descriptor: (ZZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 1
ifeq 1
getstatic org.graalvm.compiler.core.common.GraalOptions.EscapeAnalysisIterations:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
goto 2
StackMap locals:
StackMap stack: uninitialized-this
1: iconst_1
StackMap locals: uninitialized-this int int org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.phases.BasePhase
StackMap stack: uninitialized-this int
2: aload 3
invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsPhase.<init>:(ILorg/graalvm/compiler/phases/common/CanonicalizerPhase;)V
3: aload 0
iload 2
putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.readElimination:Z
4: aload 0
aload 4
putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.cleanupPhase:Lorg/graalvm/compiler/phases/BasePhase;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapePhase;
0 6 1 iterative Z
0 6 2 readElimination Z
0 6 3 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
0 6 4 cleanupPhase Lorg/graalvm/compiler/phases/BasePhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;
Signature: (ZZLorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/BasePhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;)V
MethodParameters:
Name Flags
iterative
readElimination
canonicalizer
cleanupPhase
protected void postIteration(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.phases.tiers.PhaseContext, java.util.Set<org.graalvm.compiler.graph.Node>);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;Ljava/util/Set;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsPhase.postIteration:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;Ljava/util/Set;)V
1: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.cleanupPhase:Lorg/graalvm/compiler/phases/BasePhase;
ifnull 3
2: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.cleanupPhase:Lorg/graalvm/compiler/phases/BasePhase;
aload 1
aload 2
invokevirtual org.graalvm.compiler.phases.BasePhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapePhase;
0 4 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 4 2 context Lorg/graalvm/compiler/phases/tiers/PhaseContext;
0 4 3 changedNodes Ljava/util/Set<Lorg/graalvm/compiler/graph/Node;>;
Signature: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;Ljava/util/Set<Lorg/graalvm/compiler/graph/Node;>;)V
MethodParameters:
Name Flags
graph
context
changedNodes
protected void run(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.phases.tiers.PhaseContext);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.graalvm.compiler.core.common.GraalOptions.EscapeAnalyzeOnly:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokestatic org.graalvm.compiler.virtual.phases.ea.VirtualUtil.matches:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/String;)Z
ifeq 3
1: aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.readElimination:Z
ifne 2
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasVirtualizableAllocation:()Z
ifeq 3
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.runAnalysis:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)Z
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapePhase;
0 4 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 4 2 context Lorg/graalvm/compiler/phases/tiers/PhaseContext;
MethodParameters:
Name Flags
graph
context
protected org.graalvm.compiler.virtual.phases.ea.EffectsPhase$Closure<?> createEffectsClosure(org.graalvm.compiler.phases.tiers.PhaseContext, org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult, org.graalvm.compiler.nodes.cfg.ControlFlowGraph);
descriptor: (Lorg/graalvm/compiler/phases/tiers/PhaseContext;Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Lorg/graalvm/compiler/virtual/phases/ea/EffectsPhase$Closure;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
getfield org.graalvm.compiler.nodes.cfg.ControlFlowGraph.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
getstatic org.graalvm.compiler.nodes.virtual.VirtualObjectNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 3
StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult org.graalvm.compiler.nodes.cfg.ControlFlowGraph top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
astore 4
start local 4 2: aload 4
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.resetObjectId:()V
end local 4 3: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.$assertionsDisabled:Z
ifne 5
aload 2
ifnonnull 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase org.graalvm.compiler.phases.tiers.PhaseContext org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult org.graalvm.compiler.nodes.cfg.ControlFlowGraph
StackMap stack:
aload 0
getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.readElimination:Z
ifeq 7
6: new org.graalvm.compiler.virtual.phases.ea.PEReadEliminationClosure
dup
aload 2
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getLowerer:()Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
invokespecial org.graalvm.compiler.virtual.phases.ea.PEReadEliminationClosure.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;)V
areturn
7: StackMap locals:
StackMap stack:
new org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$Final
dup
aload 2
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
aload 1
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getLowerer:()Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
invokespecial org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$Final.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;)V
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/PartialEscapePhase;
0 8 1 context Lorg/graalvm/compiler/phases/tiers/PhaseContext;
0 8 2 schedule Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
0 8 3 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
2 3 4 virtual Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
Signature: (Lorg/graalvm/compiler/phases/tiers/PhaseContext;Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Lorg/graalvm/compiler/virtual/phases/ea/EffectsPhase$Closure<*>;
MethodParameters:
Name Flags
context
schedule
cfg
public boolean checkContract();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapePhase;
}
Signature: Lorg/graalvm/compiler/virtual/phases/ea/EffectsPhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;
SourceFile: "PartialEscapePhase.java"
NestMembers:
org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase$Options
InnerClasses:
public ScheduleResult = org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult of org.graalvm.compiler.nodes.StructuredGraph
public abstract Closure = org.graalvm.compiler.virtual.phases.ea.EffectsPhase$Closure of org.graalvm.compiler.virtual.phases.ea.EffectsPhase
public final Final = org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$Final of org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure
Options = org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase$Options of org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase