class com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis
super_class: java.lang.Object
{
private final org.graalvm.compiler.phases.util.Providers originalProviders;
descriptor: Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration graphBuilderConfig;
descriptor: Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.phases.tiers.HighTierContext context;
descriptor: Lorg/graalvm/compiler/phases/tiers/HighTierContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/hosted/classinitialization/EarlyClassInitializerAnalysis;
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.classinitialization.EarlyClassInitializerAnalysis.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalProviders:()Lorg/graalvm/compiler/phases/util/Providers;
putfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.originalProviders:Lorg/graalvm/compiler/phases/util/Providers;
2: invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
astore 1
start local 1 3: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
dup
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.<init>:()V
astore 2
start local 2 4: aload 2
aload 1
invokestatic com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.registerClassDesiredAssertionStatusPlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
5: new org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins
dup
aload 2
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
astore 3
start local 3 6: aload 3
new com.oracle.svm.hosted.classinitialization.AbortOnRecursiveInliningPlugin
dup
invokespecial com.oracle.svm.hosted.classinitialization.AbortOnRecursiveInliningPlugin.<init>:()V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendInlineInvokePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin;)V
7: aload 3
new com.oracle.svm.hosted.classinitialization.AbortOnUnitializedClassPlugin
dup
invokespecial com.oracle.svm.hosted.classinitialization.AbortOnUnitializedClassPlugin.<init>:()V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.setClassInitializationPlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;)V
8: aload 3
new com.oracle.svm.hosted.phases.EarlyConstantFoldLoadFieldPlugin
dup
aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.originalProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.originalProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
invokespecial com.oracle.svm.hosted.phases.EarlyConstantFoldLoadFieldPlugin.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendNodePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/NodePlugin;)V
9: aload 0
aload 3
invokestatic org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getDefault:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
iconst_1
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.withEagerResolving:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
putfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.graphBuilderConfig:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
10: aload 0
new org.graalvm.compiler.phases.tiers.HighTierContext
dup
aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.originalProviders:Lorg/graalvm/compiler/phases/util/Providers;
aconst_null
getstatic org.graalvm.compiler.phases.OptimisticOptimizations.NONE:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
invokespecial org.graalvm.compiler.phases.tiers.HighTierContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/phases/PhaseSuite;Lorg/graalvm/compiler/phases/OptimisticOptimizations;)V
putfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.context:Lorg/graalvm/compiler/phases/tiers/HighTierContext;
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/hosted/classinitialization/EarlyClassInitializerAnalysis;
3 12 1 originalSnippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
4 12 2 invocationPlugins Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
6 12 3 plugins Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
boolean canInitializeWithoutSideEffects(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0000)
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.originalProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 1: getstatic com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.$assertionsDisabled:Z
ifne 3
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getSuperclass:()Ljdk/vm/ci/meta/ResolvedJavaType;
ifnull 3
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getSuperclass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInitialized:()Z
ifne 3
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "This analysis assumes that the superclass was successfully analyzed and initialized beforehand: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 2
iconst_1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)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
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getClassInitializer:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 3
start local 3 4: aload 3
ifnonnull 6
5: iconst_1
ireturn
6: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getCode:()[B
ifnonnull 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.option.HostedOptionValues.singleton:()Lorg/graalvm/compiler/options/OptionValues;
astore 4
start local 4 9: new org.graalvm.compiler.debug.DebugContext$Builder
dup
aload 4
invokespecial org.graalvm.compiler.debug.DebugContext$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;)V
invokevirtual org.graalvm.compiler.debug.DebugContext$Builder.build:()Lorg/graalvm/compiler/debug/DebugContext;
astore 5
start local 5 10: aconst_null
astore 6
aconst_null
astore 7
11: aload 5
ldc "EarlyClassInitializerAnalysis"
aload 3
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 8
start local 8 12: aload 0
aload 3
aload 4
aload 5
invokevirtual com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.canInitializeWithoutSideEffects:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)Z
13: aload 8
ifnull 14
aload 8
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
14: StackMap locals: com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: int
ireturn
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 6
16: aload 8
ifnull 17
aload 8
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 8 StackMap locals:
StackMap stack:
17: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 7
aload 6
ifnonnull 19
aload 7
astore 6
goto 20
StackMap locals:
StackMap stack:
19: aload 6
aload 7
if_acmpeq 20
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 6
athrow
StackMap locals: com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext
StackMap stack: java.lang.Throwable
21: astore 6
start local 6 22: aload 5
aload 6
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
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 23 0 this Lcom/oracle/svm/hosted/classinitialization/EarlyClassInitializerAnalysis;
0 23 1 clazz Ljava/lang/Class<*>;
1 23 2 type Ljdk/vm/ci/meta/ResolvedJavaType;
4 23 3 clinit Ljdk/vm/ci/meta/ResolvedJavaMethod;
9 23 4 options Lorg/graalvm/compiler/options/OptionValues;
10 23 5 debug Lorg/graalvm/compiler/debug/DebugContext;
12 17 8 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
22 23 6 ex Ljava/lang/Throwable;
Exception table:
from to target type
12 13 15 any
11 14 18 any
15 18 18 any
10 14 21 Class java.lang.Throwable
15 21 21 Class java.lang.Throwable
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
private boolean canInitializeWithoutSideEffects(jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.debug.DebugContext);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.graalvm.compiler.nodes.StructuredGraph$Builder
dup
aload 2
aload 3
invokespecial org.graalvm.compiler.nodes.StructuredGraph$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)V
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.method:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.build:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 1: aload 4
getstatic org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.FIXED_DEOPTS:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
2: new com.oracle.svm.hosted.classinitialization.ClassInitializerGraphBuilderPhase
dup
aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.context:Lorg/graalvm/compiler/phases/tiers/HighTierContext;
aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.graphBuilderConfig:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.context:Lorg/graalvm/compiler/phases/tiers/HighTierContext;
invokevirtual org.graalvm.compiler.phases.tiers.HighTierContext.getOptimisticOptimizations:()Lorg/graalvm/compiler/phases/OptimisticOptimizations;
invokespecial com.oracle.svm.hosted.classinitialization.ClassInitializerGraphBuilderPhase.<init>:(Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;Lorg/graalvm/compiler/phases/OptimisticOptimizations;)V
astore 5
start local 5 3: aconst_null
astore 6
aconst_null
astore 7
4: aload 4
new com.oracle.svm.hosted.classinitialization.AbortOnDisallowedNode
dup
invokespecial com.oracle.svm.hosted.classinitialization.AbortOnDisallowedNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeEvents:(Lorg/graalvm/compiler/graph/Graph$NodeEventListener;)Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
astore 8
start local 8 5: aload 5
aload 4
aload 0
getfield com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.context:Lorg/graalvm/compiler/phases/tiers/HighTierContext;
invokevirtual org.graalvm.compiler.java.GraphBuilderPhase$Instance.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
6: aload 8
ifnull 7
aload 8
invokevirtual org.graalvm.compiler.graph.Graph$NodeEventScope.close:()V
7: StackMap locals: com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.java.GraphBuilderPhase$Instance java.lang.Throwable java.lang.Throwable org.graalvm.compiler.graph.Graph$NodeEventScope
StackMap stack:
iconst_1
ireturn
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 6
9: aload 8
ifnull 10
aload 8
invokevirtual org.graalvm.compiler.graph.Graph$NodeEventScope.close:()V
end local 8 StackMap locals:
StackMap stack:
10: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 7
aload 6
ifnonnull 12
aload 7
astore 6
goto 13
StackMap locals:
StackMap stack:
12: aload 6
aload 7
if_acmpeq 13
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 6
athrow
StackMap locals: com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.java.GraphBuilderPhase$Instance
StackMap stack: com.oracle.svm.hosted.classinitialization.ClassInitalizerHasSideEffectsException
14: pop
15: iconst_0
ireturn
16: StackMap locals:
StackMap stack: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError
astore 6
start local 6 17: aload 6
invokevirtual org.graalvm.compiler.java.BytecodeParser$BytecodeParserError.getCause:()Ljava/lang/Throwable;
instanceof com.oracle.svm.hosted.classinitialization.ClassInitalizerHasSideEffectsException
ifeq 19
18: iconst_0
ireturn
19: StackMap locals: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError
StackMap stack:
aload 6
athrow
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 20 0 this Lcom/oracle/svm/hosted/classinitialization/EarlyClassInitializerAnalysis;
0 20 1 clinit Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 20 2 options Lorg/graalvm/compiler/options/OptionValues;
0 20 3 debug Lorg/graalvm/compiler/debug/DebugContext;
1 20 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 20 5 builderPhase Lorg/graalvm/compiler/java/GraphBuilderPhase$Instance;
5 10 8 nes Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
17 20 6 ex Lorg/graalvm/compiler/java/BytecodeParser$BytecodeParserError;
Exception table:
from to target type
5 6 8 any
4 7 11 any
8 11 11 any
3 7 14 Class com.oracle.svm.hosted.classinitialization.ClassInitalizerHasSideEffectsException
8 14 14 Class com.oracle.svm.hosted.classinitialization.ClassInitalizerHasSideEffectsException
3 7 16 Class org.graalvm.compiler.java.BytecodeParser$BytecodeParserError
8 14 16 Class org.graalvm.compiler.java.BytecodeParser$BytecodeParserError
MethodParameters:
Name Flags
clinit
options
debug
}
SourceFile: "EarlyClassInitializerAnalysis.java"
InnerClasses:
public Builder = org.graalvm.compiler.debug.DebugContext$Builder of org.graalvm.compiler.debug.DebugContext
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public abstract NodeEventListener = org.graalvm.compiler.graph.Graph$NodeEventListener of org.graalvm.compiler.graph.Graph
public final NodeEventScope = org.graalvm.compiler.graph.Graph$NodeEventScope of org.graalvm.compiler.graph.Graph
public BytecodeParserError = org.graalvm.compiler.java.BytecodeParser$BytecodeParserError of org.graalvm.compiler.java.BytecodeParser
public Instance = org.graalvm.compiler.java.GraphBuilderPhase$Instance of org.graalvm.compiler.java.GraphBuilderPhase
public Builder = org.graalvm.compiler.nodes.StructuredGraph$Builder of org.graalvm.compiler.nodes.StructuredGraph
public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration