public final class com.oracle.svm.core.genscavenge.HeapImpl extends com.oracle.svm.core.heap.Heap
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.HeapImpl
super_class: com.oracle.svm.core.heap.Heap
{
private static final com.oracle.svm.core.locks.VMMutex REF_MUTEX;
descriptor: Lcom/oracle/svm/core/locks/VMMutex;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.svm.core.locks.VMCondition REF_CONDITION;
descriptor: Lcom/oracle/svm/core/locks/VMCondition;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.oracle.svm.core.genscavenge.YoungGeneration youngGeneration;
descriptor: Lcom/oracle/svm/core/genscavenge/YoungGeneration;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.OldGeneration oldGeneration;
descriptor: Lcom/oracle/svm/core/genscavenge/OldGeneration;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.HeapChunkProvider chunkProvider;
descriptor: Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.ObjectHeaderImpl ;
descriptor: Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.GCImpl gcImpl;
descriptor: Lcom/oracle/svm/core/genscavenge/GCImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.RuntimeCodeInfoGCSupportImpl runtimeCodeInfoGcSupport;
descriptor: Lcom/oracle/svm/core/genscavenge/RuntimeCodeInfoGCSupportImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.HeapPolicy heapPolicy;
descriptor: Lcom/oracle/svm/core/genscavenge/HeapPolicy;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.ImageHeapInfo imageHeapInfo;
descriptor: Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.svm.core.genscavenge.HeapVerifier heapVerifier;
descriptor: Lcom/oracle/svm/core/genscavenge/HeapVerifier;
flags: (0x0002) ACC_PRIVATE
private final com.oracle.svm.core.genscavenge.StackVerifier stackVerifier;
descriptor: Lcom/oracle/svm/core/genscavenge/StackVerifier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.ref.Reference<?> refPendingList;
descriptor: Ljava/lang/ref/Reference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/Reference<*>;
private long refListOfferCounter;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long refListWaiterWakeUpCounter;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference<com.oracle.svm.core.genscavenge.PinnedObjectImpl> pinHead;
descriptor: Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference<Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;>;
private java.util.List<java.lang.Class<?>> classList;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/lang/Class<*>;>;
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=3, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/genscavenge/HeapImpl;
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.core.genscavenge.HeapImpl.$assertionsDisabled:Z
3: new com.oracle.svm.core.locks.VMMutex
dup
invokespecial com.oracle.svm.core.locks.VMMutex.<init>:()V
putstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
4: new com.oracle.svm.core.locks.VMCondition
dup
getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokespecial com.oracle.svm.core.locks.VMCondition.<init>:(Lcom/oracle/svm/core/locks/VMMutex;)V
putstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.nativeimage.hosted.Feature$FeatureAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.svm.core.heap.Heap.<init>:()V
1: aload 0
new com.oracle.svm.core.genscavenge.YoungGeneration
dup
ldc "YoungGeneration"
invokespecial com.oracle.svm.core.genscavenge.YoungGeneration.<init>:(Ljava/lang/String;)V
putfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
2: aload 0
new com.oracle.svm.core.genscavenge.OldGeneration
dup
ldc "OldGeneration"
invokespecial com.oracle.svm.core.genscavenge.OldGeneration.<init>:(Ljava/lang/String;)V
putfield com.oracle.svm.core.genscavenge.HeapImpl.oldGeneration:Lcom/oracle/svm/core/genscavenge/OldGeneration;
3: aload 0
new com.oracle.svm.core.genscavenge.HeapChunkProvider
dup
invokespecial com.oracle.svm.core.genscavenge.HeapChunkProvider.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.chunkProvider:Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
4: aload 0
new com.oracle.svm.core.genscavenge.ObjectHeaderImpl
dup
invokespecial com.oracle.svm.core.genscavenge.ObjectHeaderImpl.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.objectHeaderImpl:Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
5: aload 0
new com.oracle.svm.core.genscavenge.ImageHeapInfo
dup
invokespecial com.oracle.svm.core.genscavenge.ImageHeapInfo.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
6: aload 0
new com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference
dup
invokespecial com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.pinHead:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
7: aload 0
new com.oracle.svm.core.genscavenge.GCImpl
dup
aload 1
invokespecial com.oracle.svm.core.genscavenge.GCImpl.<init>:(Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
putfield com.oracle.svm.core.genscavenge.HeapImpl.gcImpl:Lcom/oracle/svm/core/genscavenge/GCImpl;
8: aload 0
new com.oracle.svm.core.genscavenge.RuntimeCodeInfoGCSupportImpl
dup
invokespecial com.oracle.svm.core.genscavenge.RuntimeCodeInfoGCSupportImpl.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.runtimeCodeInfoGcSupport:Lcom/oracle/svm/core/genscavenge/RuntimeCodeInfoGCSupportImpl;
9: aload 0
new com.oracle.svm.core.genscavenge.HeapPolicy
dup
invokespecial com.oracle.svm.core.genscavenge.HeapPolicy.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.heapPolicy:Lcom/oracle/svm/core/genscavenge/HeapPolicy;
10: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapBeforeGC:()Z
ifne 11
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapAfterGC:()Z
ifne 11
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackBeforeGC:()Z
ifne 11
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackAfterGC:()Z
ifne 11
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardBeforeGC:()Z
ifne 11
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardAfterGC:()Z
ifeq 14
11: StackMap locals: com.oracle.svm.core.genscavenge.HeapImpl org.graalvm.nativeimage.hosted.Feature$FeatureAccess
StackMap stack:
aload 0
new com.oracle.svm.core.genscavenge.HeapVerifier
dup
invokespecial com.oracle.svm.core.genscavenge.HeapVerifier.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
12: aload 0
new com.oracle.svm.core.genscavenge.StackVerifier
dup
invokespecial com.oracle.svm.core.genscavenge.StackVerifier.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
13: goto 16
14: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
15: aload 0
aconst_null
putfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
16: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.getSingleton:()Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
aload 0
invokedynamic invokeWithoutAllocation(Lcom/oracle/svm/core/genscavenge/HeapImpl;)Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
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:
(Lcom/oracle/svm/core/log/Log;)V
com/oracle/svm/core/genscavenge/HeapImpl.lambda$0(Lcom/oracle/svm/core/log/Log;)V (7)
(Lcom/oracle/svm/core/log/Log;)V
invokevirtual com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.register:(Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;)V
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 18 1 access Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
MethodParameters:
Name Flags
access
public static com.oracle.svm.core.genscavenge.HeapImpl getHeapImpl();
descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapImpl;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: invokestatic com.oracle.svm.core.heap.Heap.getHeap:()Lcom/oracle/svm/core/heap/Heap;
astore 0
start local 0 1: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 2
aload 0
instanceof com.oracle.svm.core.genscavenge.HeapImpl
ifne 2
new java.lang.AssertionError
dup
ldc "VMConfiguration heap is not a HeapImpl."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: com.oracle.svm.core.heap.Heap
StackMap stack:
aload 0
checkcast com.oracle.svm.core.genscavenge.HeapImpl
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 heap Lcom/oracle/svm/core/heap/Heap;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public static com.oracle.svm.core.genscavenge.ImageHeapInfo getImageHeapInfo();
descriptor: ()Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static com.oracle.svm.core.genscavenge.HeapChunkProvider getChunkProvider();
descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
getfield com.oracle.svm.core.genscavenge.HeapImpl.chunkProvider:Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public boolean isInImageHeap(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Lorg/graalvm/word/Pointer;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 1 1 obj Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
obj
public boolean isInImageHeap(org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.ImageHeapInfo.isInImageHeap:(Lorg/graalvm/word/Pointer;)Z
ifne 2
invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
ifeq 1
invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
aload 1
invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.containsObject:(Lorg/graalvm/word/Pointer;)Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 3 1 pointer Lorg/graalvm/word/Pointer;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
pointer
boolean isInImageHeapSlow(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeapSlow:(Lorg/graalvm/word/Pointer;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 1 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
boolean isInImageHeapSlow(org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.ImageHeapInfo.isInImageHeapSlow:(Lorg/graalvm/word/Pointer;)Z
ifne 2
invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
ifeq 1
invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
aload 1
invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.containsObjectSlow:(Lorg/graalvm/word/Pointer;)Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 3 1 p Lorg/graalvm/word/Pointer;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
p
public void suspendAllocation();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.suspendInCurrentThread:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
public void resumeAllocation();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.resumeInCurrentThread:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
public boolean walkObjects(com.oracle.svm.core.heap.ObjectVisitor);
descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "must only be executed at a safepoint"
invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
1: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkImageHeapObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifeq 2
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkCollectedHeapObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifeq 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 3 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
MethodParameters:
Name Flags
visitor
boolean walkMemory(com.oracle.svm.core.MemoryWalker$Visitor);
descriptor: (Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "must only be executed at a safepoint"
invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
1: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkNativeImageHeapRegions:(Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
ifeq 2
aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.walkHeapChunks:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
ifeq 2
aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.walkHeapChunks:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
ifeq 2
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.walkHeapChunks:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
ifeq 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 3 1 visitor Lcom/oracle/svm/core/MemoryWalker$Visitor;
MethodParameters:
Name Flags
visitor
public boolean tearDown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.tearDown:()V
1: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.oldGeneration:Lcom/oracle/svm/core/genscavenge/OldGeneration;
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.tearDown:()V
2: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.tearDown:()V
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Tear-down in progress.")
public com.oracle.svm.core.heap.ObjectHeader ();
descriptor: ()Lcom/oracle/svm/core/heap/ObjectHeader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.objectHeaderImpl:Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
com.oracle.svm.core.genscavenge.ObjectHeaderImpl ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.objectHeaderImpl:Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
public com.oracle.svm.core.heap.GC getGC();
descriptor: ()Lcom/oracle/svm/core/heap/GC;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public com.oracle.svm.core.heap.RuntimeCodeInfoGCSupport getRuntimeCodeInfoGCSupport();
descriptor: ()Lcom/oracle/svm/core/heap/RuntimeCodeInfoGCSupport;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.runtimeCodeInfoGcSupport:Lcom/oracle/svm/core/genscavenge/RuntimeCodeInfoGCSupportImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
com.oracle.svm.core.genscavenge.GCImpl getGCImpl();
descriptor: ()Lcom/oracle/svm/core/genscavenge/GCImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.gcImpl:Lcom/oracle/svm/core/genscavenge/GCImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
public boolean isAllocationDisallowed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.heap.NoAllocationVerifier.isActive:()Z
ifne 1
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.gcImpl:Lcom/oracle/svm/core/genscavenge/GCImpl;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.isCollectionInProgress:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
static void exitIfAllocationDisallowed(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isAllocationDisallowed:()Z
ifeq 2
1: aload 0
aload 1
invokestatic com.oracle.svm.core.heap.NoAllocationVerifier.exit:(Ljava/lang/String;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 callSite Ljava/lang/String;
0 3 1 typeName Ljava/lang/String;
MethodParameters:
Name Flags
callSite
typeName
java.lang.Object promoteObject(java.lang.Object, org.graalvm.word.UnsignedWord);
descriptor: (Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapImpl.promoteObject:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " original: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
astore 3
start local 3 1: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
ifle 4
aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.isCompleteCollection:()Z
ifne 4
2: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
aload 1
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.promoteObject:(Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
astore 4
start local 4 3: goto 5
end local 4 4: StackMap locals: com.oracle.svm.core.log.Log
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
aload 1
aload 2
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.promoteObject:(Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
astore 4
start local 4 5: StackMap locals: java.lang.Object
StackMap stack:
aload 3
ldc " result: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 4
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
6: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 7 1 original Ljava/lang/Object;
0 7 2 header Lorg/graalvm/word/UnsignedWord;
1 7 3 trace Lcom/oracle/svm/core/log/Log;
3 4 4 result Ljava/lang/Object;
5 7 4 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.AlwaysInline(value = "GC performance")
MethodParameters:
Name Flags
original
header
void dirtyCardIfNecessary(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
ifeq 1
aload 1
ifnull 1
invokestatic com.oracle.svm.core.genscavenge.GCImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.isCompleteCollection:()Z
ifne 1
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.contains:(Ljava/lang/Object;)Z
ifne 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 3: aload 3
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.hasRememberedSet:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 9
4: aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isAlignedObject:(Ljava/lang/Object;)Z
ifeq 7
5: aload 1
iconst_0
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.dirtyCardForObject:(Ljava/lang/Object;Z)V
6: goto 9
7: StackMap locals: org.graalvm.word.UnsignedWord
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 8
aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedObject:(Ljava/lang/Object;)Z
ifne 8
new java.lang.AssertionError
dup
ldc "sanity"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
8: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.dirtyCardForObject:(Ljava/lang/Object;Z)V
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 10 1 holderObject Ljava/lang/Object;
0 10 2 object Ljava/lang/Object;
3 10 3 objectHeader Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.AlwaysInline(value = "GC performance")
MethodParameters:
Name Flags
holderObject
object
com.oracle.svm.core.genscavenge.HeapPolicy getHeapPolicy();
descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapPolicy;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapPolicy:Lcom/oracle/svm/core/genscavenge/HeapPolicy;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
com.oracle.svm.core.genscavenge.YoungGeneration getYoungGeneration();
descriptor: ()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
com.oracle.svm.core.genscavenge.OldGeneration getOldGeneration();
descriptor: ()Lcom/oracle/svm/core/genscavenge/OldGeneration;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.oldGeneration:Lcom/oracle/svm/core/genscavenge/OldGeneration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference<com.oracle.svm.core.genscavenge.PinnedObjectImpl> getPinHead();
descriptor: ()Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.pinHead:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
Signature: ()Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference<Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;>;
public org.graalvm.word.UnsignedWord getUsedBytes();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getYoungUsedBytes:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Necessary to return a reasonably consistent value (a GC can change the queried values).")
public org.graalvm.word.UnsignedWord getCommittedBytes();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getUsedBytes:()Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.getBytesInUnusedChunks:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Necessary to return a reasonably consistent value (a GC can change the queried values).")
void report(com.oracle.svm.core.log.Log);
descriptor: (Lcom/oracle/svm/core/log/Log;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.TraceHeapChunks:Lcom/oracle/svm/core/option/RuntimeOptionKey;
invokevirtual com.oracle.svm.core.option.RuntimeOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 2 1 log Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
log
com.oracle.svm.core.log.Log report(com.oracle.svm.core.log.Log, boolean);
descriptor: (Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc "[Heap:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
pop
1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
aload 1
iload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
2: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
aload 1
iload 2
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
3: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
aload 1
iload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
pop
4: aload 1
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
5: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 6 1 log Lcom/oracle/svm/core/log/Log;
0 6 2 traceHeapChunks Z
MethodParameters:
Name Flags
log
traceHeapChunks
com.oracle.svm.core.log.Log logImageHeapPartitionBoundaries(com.oracle.svm.core.log.Log);
descriptor: (Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "[Native image heap boundaries: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
pop
1: aload 1
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.logPartitionBoundaries:(Lcom/oracle/svm/core/log/Log;Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)V
2: aload 1
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
3: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 4 1 log Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
log
static com.oracle.svm.core.log.Log zapValuesToLog(com.oracle.svm.core.log.Log);
descriptor: (Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapProducedHeapChunks:()Z
ifne 1
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapConsumedHeapChunks:()Z
ifeq 23
1: StackMap locals:
StackMap stack:
aload 0
ldc "[Heap Chunk zap values: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
pop
2: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapProducedHeapChunks:()Z
ifeq 13
3: aload 0
ldc " producedHeapChunkZapInt: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
4: ldc " hex: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
bipush 8
invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapInt:()I
invokevirtual com.oracle.svm.core.log.Log.hex:(I)Lcom/oracle/svm/core/log/Log;
5: ldc " signed: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
bipush 9
invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapInt:()I
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
6: ldc " unsigned: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
bipush 10
invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapInt:()I
invokevirtual com.oracle.svm.core.log.Log.unsigned:(I)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
7: aload 0
ldc " producedHeapChunkZapWord:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
8: ldc " hex: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
9: ldc " signed: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
10: ldc " unsigned: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
11: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapConsumedHeapChunks:()Z
ifeq 13
12: aload 0
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
13: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapConsumedHeapChunks:()Z
ifeq 22
14: aload 0
ldc " consumedHeapChunkZapInt: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
15: ldc " hex: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
bipush 8
invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapInt:()I
invokevirtual com.oracle.svm.core.log.Log.hex:(I)Lcom/oracle/svm/core/log/Log;
16: ldc " signed: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
bipush 10
invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapInt:()I
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
17: ldc " unsigned: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
bipush 10
invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapInt:()I
invokevirtual com.oracle.svm.core.log.Log.unsigned:(I)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
18: aload 0
ldc " consumedHeapChunkZapWord:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
19: ldc " hex: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
20: ldc " signed: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
21: ldc " unsigned: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
22: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
23: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 log Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
log
public int getClassCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.dynamicHubCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
public java.util.List<java.lang.Class<?>> getClassList();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
ifnonnull 4
1: new java.util.ArrayList
dup
sipush 1024
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 2: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
new com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor
dup
aload 1
invokespecial com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor.<init>:(Ljava/util/List;)V
invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.walkRegions:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
pop
3: aload 0
aload 1
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
end local 1 4: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 5
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
invokeinterface java.util.List.size:()I
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.dynamicHubCount:I
if_icmpeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
2 4 1 list Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: ()Ljava/util/List<Ljava/lang/Class<*>;>;
com.oracle.svm.core.genscavenge.HeapVerifier getHeapVerifier();
descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
void setHeapVerifier(com.oracle.svm.core.genscavenge.HeapVerifier);
descriptor: (Lcom/oracle/svm/core/genscavenge/HeapVerifier;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 2 1 value Lcom/oracle/svm/core/genscavenge/HeapVerifier;
MethodParameters:
Name Flags
value
static boolean getVerifyHeapBeforeGC();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyHeapBeforeCollection:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static boolean getVerifyHeapAfterGC();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyHeapAfterCollection:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static boolean getVerifyStackBeforeGC();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyStackBeforeCollection:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static boolean getVerifyStackAfterGC();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyStackAfterCollection:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static boolean getVerifyDirtyCardBeforeGC();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyDirtyCardsBeforeCollection:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static boolean getVerifyDirtyCardAfterGC();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyDirtyCardsAfterCollection:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
void verifyBeforeGC(java.lang.String, org.graalvm.word.UnsignedWord);
descriptor: (Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapImpl.verifyBeforeGC:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 3
start local 3 1: aload 3
ldc " getVerifyHeapBeforeGC(): "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapBeforeGC:()Z
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
ldc " heapVerifier: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
pop
2: aload 3
ldc " getVerifyStackBeforeGC(): "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackBeforeGC:()Z
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
ldc " stackVerifier: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
pop
3: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapBeforeGC:()Z
ifeq 8
4: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 5
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
ifnonnull 5
new java.lang.AssertionError
dup
ldc "No heap verifier!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: com.oracle.svm.core.log.Log
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
ldc "before collection"
getstatic com.oracle.svm.core.genscavenge.HeapVerifier$Occasion.BEFORE_COLLECTION:Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.verifyOperation:(Ljava/lang/String;Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;)Z
ifne 8
6: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapImpl.verifyBeforeGC:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " cause: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " heap fails to verify before epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
7: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackBeforeGC:()Z
ifeq 13
9: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 10
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
ifnonnull 10
new java.lang.AssertionError
dup
ldc "No stack verifier!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readCallerStackPointer:()Lorg/graalvm/word/Pointer;
ldc "before collection"
invokevirtual com.oracle.svm.core.genscavenge.StackVerifier.verifyInAllThreads:(Lorg/graalvm/word/Pointer;Ljava/lang/String;)Z
ifne 13
11: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapImpl.verifyBeforeGC:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " cause: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " stack fails to verify epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
12: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardBeforeGC:()Z
ifeq 16
14: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 15
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
ifnonnull 15
new java.lang.AssertionError
dup
ldc "No heap verifier!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
15: StackMap locals:
StackMap stack:
iconst_0
invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.verifyDirtyCard:(Z)V
16: StackMap locals:
StackMap stack:
aload 3
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 18 1 cause Ljava/lang/String;
0 18 2 epoch Lorg/graalvm/word/UnsignedWord;
1 18 3 trace Lcom/oracle/svm/core/log/Log;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.NeverInline(value = "Starting a stack walk in the caller frame")
MethodParameters:
Name Flags
cause
epoch
void verifyAfterGC(java.lang.String, org.graalvm.word.UnsignedWord);
descriptor: (Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapAfterGC:()Z
ifeq 5
1: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
ifnonnull 2
new java.lang.AssertionError
dup
ldc "No heap verifier!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
ldc "after collection"
getstatic com.oracle.svm.core.genscavenge.HeapVerifier$Occasion.AFTER_COLLECTION:Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.verifyOperation:(Ljava/lang/String;Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;)Z
ifne 5
3: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapImpl.verifyAfterGC:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " cause: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " heap fails to verify after epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
4: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackAfterGC:()Z
ifeq 10
6: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 7
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
ifnonnull 7
new java.lang.AssertionError
dup
ldc "No stack verifier!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readCallerStackPointer:()Lorg/graalvm/word/Pointer;
ldc "after collection"
invokevirtual com.oracle.svm.core.genscavenge.StackVerifier.verifyInAllThreads:(Lorg/graalvm/word/Pointer;Ljava/lang/String;)Z
ifne 10
8: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapImpl.verifyAfterGC:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " cause: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " stack fails to verify after epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
9: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardAfterGC:()Z
ifeq 13
11: getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
ifne 12
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
ifnonnull 12
new java.lang.AssertionError
dup
ldc "No heap verifier!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
12: StackMap locals:
StackMap stack:
iconst_1
invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.verifyDirtyCard:(Z)V
13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 14 1 cause Ljava/lang/String;
0 14 2 epoch Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.NeverInline(value = "Starting a stack walk in the caller frame")
MethodParameters:
Name Flags
cause
epoch
public void prepareForSafepoint();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
public void endSafepoint();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
public void attachThread(org.graalvm.nativeimage.IsolateThread);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 1 1 isolateThread Lorg/graalvm/nativeimage/IsolateThread;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called during startup.")
MethodParameters:
Name Flags
isolateThread
public void detachThread(org.graalvm.nativeimage.IsolateThread);
descriptor: (Lorg/graalvm/nativeimage/IsolateThread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.disableAndFlushForThread:(Lorg/graalvm/nativeimage/IsolateThread;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 2 1 isolateThread Lorg/graalvm/nativeimage/IsolateThread;
MethodParameters:
Name Flags
isolateThread
public static boolean usesImageHeapChunks();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.usesImageHeapCardMarking:()Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public static boolean usesImageHeapCardMarking();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=1, args_size=0
0: getstatic com.oracle.svm.core.genscavenge.HeapOptions.ImageHeapCardMarking:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
astore 0
start local 0 1: aload 0
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
if_acmpne 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.Boolean
StackMap stack:
aload 0
ifnonnull 8
4: invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.guaranteesHeapPreferredAddressSpaceAlignment:()Z
ifeq 7
5: getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.MaxSurvivorSpaces:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ifne 7
6: iconst_1
ireturn
StackMap locals:
StackMap stack:
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.guaranteesHeapPreferredAddressSpaceAlignment:()Z
9: ldc "Enabling option %s requires a custom image heap alignment at runtime, which cannot be ensured with the current configuration (option %s might be disabled)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
10: getstatic com.oracle.svm.core.genscavenge.HeapOptions.ImageHeapCardMarking:Lcom/oracle/svm/core/option/HostedOptionKey;
aastore
dup
iconst_1
getstatic com.oracle.svm.core.SubstrateOptions.SpawnIsolates:Lcom/oracle/svm/core/option/HostedOptionKey;
aastore
11: invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
12: getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.MaxSurvivorSpaces:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ifne 13
iconst_1
goto 14
StackMap locals:
StackMap stack:
13: iconst_0
14: StackMap locals:
StackMap stack: int
ldc "Enabling option %s is currently not supported together with non-zero %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
getstatic com.oracle.svm.core.genscavenge.HeapOptions.ImageHeapCardMarking:Lcom/oracle/svm/core/option/HostedOptionKey;
aastore
dup
iconst_1
getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.MaxSurvivorSpaces:Lcom/oracle/svm/core/option/HostedOptionKey;
aastore
15: invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
16: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 17 0 enabled Ljava/lang/Boolean;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public int getPreferredAddressSpaceAlignment();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.usesImageHeapChunks:()Z
ifeq 2
1: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkAlignment:()Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.util.UnsignedUtils.safeToInt:(Lorg/graalvm/word/UnsignedWord;)I
ireturn
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public int getImageHeapOffsetInAddressSpace();
descriptor: ()I
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 Lcom/oracle/svm/core/genscavenge/HeapImpl;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public boolean walkImageHeapObjects(com.oracle.svm.core.heap.ObjectVisitor);
descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "Must only be called at a safepoint"
invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
1: aload 1
ifnull 6
2: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
aload 1
invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.walkImageHeapObjects:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifeq 5
3: invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
ifeq 4
invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
aload 1
invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.walkObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifeq 5
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 7 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
MethodParameters:
Name Flags
visitor
public boolean walkCollectedHeapObjects(com.oracle.svm.core.heap.ObjectVisitor);
descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "Must only be called at a safepoint"
invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.walkObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifeq 2
aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.walkObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifeq 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 3 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
MethodParameters:
Name Flags
visitor
boolean walkNativeImageHeapRegions(com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor);
descriptor: (Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
aload 1
invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.walkRegions:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
ifeq 3
1: invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
ifeq 2
invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
aload 1
invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.walkRegions:(Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
ifeq 3
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 4 1 visitor Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;
MethodParameters:
Name Flags
visitor
public org.graalvm.compiler.nodes.gc.CardTableBarrierSet createBarrierSet(jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc [Ljava/lang/Object;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 1: new com.oracle.svm.core.genscavenge.graal.SubstrateCardTableBarrierSet
dup
aload 2
invokespecial com.oracle.svm.core.genscavenge.graal.SubstrateCardTableBarrierSet.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 2 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
1 2 2 objectArrayType Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
metaAccess
void addToReferencePendingList(java.lang.ref.Reference<?>);
descriptor: (Ljava/lang/ref/Reference;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: ldc "Must only be called during a GC."
invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeGCInProgress:(Ljava/lang/String;)V
1: aload 1
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.lock:()Lcom/oracle/svm/core/locks/VMMutex;
pop
4: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
ifnull 13
5: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
astore 2
start local 2 6: aload 2
invokestatic com.oracle.svm.core.heap.ReferenceInternals.getNextDiscovered:(Ljava/lang/ref/Reference;)Ljava/lang/ref/Reference;
astore 3
start local 3 7: goto 10
8: StackMap locals: java.lang.ref.Reference java.lang.ref.Reference
StackMap stack:
aload 3
astore 2
9: aload 2
invokestatic com.oracle.svm.core.heap.ReferenceInternals.getNextDiscovered:(Ljava/lang/ref/Reference;)Ljava/lang/ref/Reference;
astore 3
10: StackMap locals:
StackMap stack:
aload 3
ifnonnull 8
11: aload 2
aload 1
invokestatic com.oracle.svm.core.heap.ReferenceInternals.setNextDiscovered:(Ljava/lang/ref/Reference;Ljava/lang/ref/Reference;)V
end local 3 end local 2 12: goto 20
13: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
14: aload 0
dup
getfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
lconst_1
ladd
putfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
15: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
invokevirtual com.oracle.svm.core.locks.VMCondition.broadcast:()V
16: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 4
18: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
19: aload 4
athrow
20: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
21: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 22 1 list Ljava/lang/ref/Reference<*>;
6 12 2 current Ljava/lang/ref/Reference<*>;
7 12 3 next Ljava/lang/ref/Reference<*>;
Exception table:
from to target type
4 17 17 any
Signature: (Ljava/lang/ref/Reference<*>;)V
MethodParameters:
Name Flags
list
public boolean hasReferencePendingList();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
1: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
ifnull 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 2
4: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
5: iload 2
ireturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
7: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
8: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
Exception table:
from to target type
1 4 6 any
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")
public void waitForReferencePendingList();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
1: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
ifnull 4
2: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
lstore 1
start local 1 5: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
lstore 3
start local 3 6: goto 10
end local 3 end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 5
8: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
9: aload 5
athrow
start local 1 start local 3 10: StackMap locals: long long
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
11: lload 1
lload 3
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.transitionToParkedInNativeThenAwaitPendingRefs:(JJ)V
12: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
5 7 1 initialOffers J
10 13 1 initialOffers J
6 7 3 initialWakeUps J
10 13 3 initialWakeUps J
Exception table:
from to target type
1 2 7 any
4 7 7 any
Exceptions:
throws java.lang.InterruptedException
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")
private static void transitionToParkedInNativeThenAwaitPendingRefs(long, long);
descriptor: (JJ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 2 0: lload 0
lload 2
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.doTransitionToParkedInNativeThenAwaitPendingRefs:(JJ)V
1: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 initialOffers J
0 2 2 initialWakeUps J
Exceptions:
throws java.lang.InterruptedException
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", calleeMustBe = false)
MethodParameters:
Name Flags
initialOffers
initialWakeUps
private static void doTransitionToParkedInNativeThenAwaitPendingRefs(long, long);
descriptor: (JJ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 2 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 4
start local 4 1: aload 4
invokestatic com.oracle.svm.core.thread.JavaThreads.getThreadStatus:(Ljava/lang/Thread;)I
istore 5
start local 5 2: aload 4
sipush 657
invokestatic com.oracle.svm.core.thread.JavaThreads.setThreadStatus:(Ljava/lang/Thread;I)V
3: StackMap locals: java.lang.Thread int
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
ifeq 5
4: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
lload 0
lload 2
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.transitionToNativeThenAwaitPendingRefs:(JJ)Z
istore 6
start local 6 6: iload 6
ifeq 3
end local 6 7: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 7
9: aload 4
iload 5
invokestatic com.oracle.svm.core.thread.JavaThreads.setThreadStatus:(Ljava/lang/Thread;I)V
10: aload 7
athrow
11: StackMap locals:
StackMap stack:
aload 4
iload 5
invokestatic com.oracle.svm.core.thread.JavaThreads.setThreadStatus:(Ljava/lang/Thread;I)V
12: return
end local 5 end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 initialOffers J
0 13 2 initialWakeUps J
1 13 4 currentThread Ljava/lang/Thread;
2 13 5 oldThreadStatus I
6 7 6 offered Z
Exception table:
from to target type
3 8 8 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
initialOffers
initialWakeUps
private static boolean transitionToNativeThenAwaitPendingRefs(long, long);
descriptor: (JJ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 2 0: iconst_3
invokestatic com.oracle.svm.core.nodes.CFunctionPrologueNode.cFunctionPrologue:(I)V
1: lload 0
lload 2
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.awaitPendingRefsInNative:(JJ)Z
istore 4
start local 4 2: iconst_3
invokestatic com.oracle.svm.core.nodes.CFunctionEpilogueNode.cFunctionEpilogue:(I)V
3: iload 4
ireturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 initialOffers J
0 4 2 initialWakeUps J
2 4 4 offered Z
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.NeverInline(value = "Must not be inlined in a caller that has an exception handler: We only support InvokeNode and not InvokeWithExceptionNode between a CFunctionPrologueNode and CFunctionEpilogueNode")
MethodParameters:
Name Flags
initialOffers
initialWakeUps
private static boolean awaitPendingRefsInNative(long, long);
descriptor: (JJ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 2 0: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
1: goto 6
2: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
invokevirtual com.oracle.svm.core.locks.VMCondition.blockNoTransition:()V
3: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
getfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
lload 2
lcmp
ifeq 6
4: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
getfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
lload 0
lcmp
ifeq 2
7: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
10: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
11: aload 4
athrow
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 initialOffers J
0 12 2 initialWakeUps J
Exception table:
from to target type
1 4 9 any
6 7 9 any
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "In native.")
com.oracle.svm.core.annotate.NeverInline(value = "Provide a return address for the Java frame anchor.")
MethodParameters:
Name Flags
initialOffers
initialWakeUps
public void wakeUpReferencePendingListWaiters();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
1: aload 0
dup
getfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
lconst_1
ladd
putfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
2: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
invokevirtual com.oracle.svm.core.locks.VMCondition.broadcast:()V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
5: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
Exception table:
from to target type
1 4 4 any
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")
public java.lang.ref.Reference<?> getAndClearReferencePendingList();
descriptor: ()Ljava/lang/ref/Reference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
1: aload 0
getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
astore 1
start local 1 2: aload 0
aconst_null
putfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
3: aload 1
astore 3
4: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
5: aload 3
areturn
end local 1 6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
7: getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
8: aload 2
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
2 6 1 list Ljava/lang/ref/Reference<*>;
Exception table:
from to target type
1 4 6 any
Signature: ()Ljava/lang/ref/Reference<*>;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")
public org.graalvm.compiler.nodes.gc.BarrierSet createBarrierSet(jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/BarrierSet;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.createBarrierSet:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
areturn
LocalVariableTable:
Start End Slot Name Signature
private void lambda$0(com.oracle.svm.core.log.Log);
descriptor: (Lcom/oracle/svm/core/log/Log;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.logImageHeapPartitionBoundaries:(Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
1: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.zapValuesToLog:(Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
2: aload 0
aload 1
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
3: aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/core/genscavenge/HeapImpl;
0 5 1 log Lcom/oracle/svm/core/log/Log;
}
SourceFile: "HeapImpl.java"
NestMembers:
com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor
InnerClasses:
public abstract ImageHeapRegionVisitor = com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor of com.oracle.svm.core.MemoryWalker
public abstract Visitor = com.oracle.svm.core.MemoryWalker$Visitor of com.oracle.svm.core.MemoryWalker
public abstract DiagnosticThunk = com.oracle.svm.core.SubstrateUtil$DiagnosticThunk of com.oracle.svm.core.SubstrateUtil
public DiagnosticThunkRegister = com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister of com.oracle.svm.core.SubstrateUtil
private ClassListBuilderVisitor = com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor of com.oracle.svm.core.genscavenge.HeapImpl
public final Occasion = com.oracle.svm.core.genscavenge.HeapVerifier$Occasion of com.oracle.svm.core.genscavenge.HeapVerifier
public AtomicReference = com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference of com.oracle.svm.core.jdk.UninterruptibleUtils
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract FeatureAccess = org.graalvm.nativeimage.hosted.Feature$FeatureAccess of org.graalvm.nativeimage.hosted.Feature