public final class com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin implements org.graalvm.compiler.nodes.graphbuilderconf.NodePlugin
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin
super_class: java.lang.Object
{
private com.oracle.svm.hosted.classinitialization.ClassInitializationSupport classInitializationSupport;
descriptor: Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
flags: (0x0002) ACC_PRIVATE
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 Lcom/oracle/svm/hosted/phases/ConstantFoldLoadFieldPlugin;
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 com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.oracle.svm.hosted.classinitialization.ClassInitializationSupport);
descriptor: (Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin.classInitializationSupport:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/phases/ConstantFoldLoadFieldPlugin;
0 3 1 classInitializationSupport Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
MethodParameters:
Name Flags
classInitializationSupport
public boolean handleLoadField(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 3
1: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 4
start local 4 2: aload 0
aload 1
aload 3
aload 4
invokevirtual com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin.tryConstantFold:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Z
ireturn
end local 4 3: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/phases/ConstantFoldLoadFieldPlugin;
0 4 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 4 2 receiver Lorg/graalvm/compiler/nodes/ValueNode;
0 4 3 field Ljdk/vm/ci/meta/ResolvedJavaField;
2 3 4 asJavaConstant Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
b
receiver
field
public boolean handleLoadStaticField(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaField;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
invokevirtual com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin.tryConstantFold:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/phases/ConstantFoldLoadFieldPlugin;
0 1 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 1 2 staticField Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
b
staticField
private boolean tryConstantFold(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.JavaConstant);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
aload 3
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokestatic org.graalvm.compiler.nodes.util.ConstantFoldUtil.tryConstantFold:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 4
start local 4 1: aload 4
ifnull 10
2: getstatic com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin.$assertionsDisabled:Z
ifne 3
aload 4
invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.nodes.ConstantNode
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 5
start local 5 4: getstatic com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin.$assertionsDisabled:Z
ifne 7
aload 0
getfield com.oracle.svm.hosted.phases.ConstantFoldLoadFieldPlugin.classInitializationSupport:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.shouldInitializeAtRuntime:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 7
5: aload 5
invokeinterface jdk.vm.ci.meta.JavaConstant.isDefaultForKind:()Z
ifne 7
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Fields in classes that are marked for initialization at run time must not be constant folded, unless they are not written in the static initializer, i.e., have the default value: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 2
ldc "%H.%n"
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ConstantNode
astore 4
8: aload 1
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
aload 4
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.push:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)V
9: iconst_1
ireturn
end local 5 10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/hosted/phases/ConstantFoldLoadFieldPlugin;
0 11 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 11 2 field Ljdk/vm/ci/meta/ResolvedJavaField;
0 11 3 receiver Ljdk/vm/ci/meta/JavaConstant;
1 11 4 result Lorg/graalvm/compiler/nodes/ConstantNode;
4 10 5 value Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
b
field
receiver
}
SourceFile: "ConstantFoldLoadFieldPlugin.java"
InnerClasses:
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node