public final class com.oracle.svm.core.genscavenge.GCImpl implements com.oracle.svm.core.heap.GC
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.GCImpl
super_class: java.lang.Object
{
private final com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor rememberedSetConstructor;
descriptor: Lcom/oracle/svm/core/genscavenge/GCImpl$RememberedSetConstructor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor greyToBlackObjRefVisitor;
descriptor: Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor greyToBlackObjectVisitor;
descriptor: Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor blackenImageHeapRootsVisitor;
descriptor: Lcom/oracle/svm/core/genscavenge/GCImpl$BlackenImageHeapRootsVisitor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.RuntimeCodeCacheWalker runtimeCodeCacheWalker;
descriptor: Lcom/oracle/svm/core/genscavenge/RuntimeCodeCacheWalker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.heap.RuntimeCodeCacheCleaner runtimeCodeCacheCleaner;
descriptor: Lcom/oracle/svm/core/heap/RuntimeCodeCacheCleaner;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.GCAccounting accounting;
descriptor: Lcom/oracle/svm/core/genscavenge/GCAccounting;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.Timers timers;
descriptor: Lcom/oracle/svm/core/genscavenge/Timers;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation collectOperation;
descriptor: Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.OutOfMemoryError oldGenerationSizeExceeded;
descriptor: Ljava/lang/OutOfMemoryError;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.heap.NoAllocationVerifier noAllocationVerifier;
descriptor: Lcom/oracle/svm/core/heap/NoAllocationVerifier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser chunkReleaser;
descriptor: Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.svm.core.genscavenge.CollectionPolicy policy;
descriptor: Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
flags: (0x0002) ACC_PRIVATE
private boolean completeCollection;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.graalvm.word.UnsignedWord sizeBefore;
descriptor: Lorg/graalvm/word/UnsignedWord;
flags: (0x0002) ACC_PRIVATE
private boolean collectionInProgress;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.graalvm.word.UnsignedWord collectionEpoch;
descriptor: Lorg/graalvm/word/UnsignedWord;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/genscavenge/GCImpl;
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.GCImpl.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.nativeimage.hosted.Feature$FeatureAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor
dup
invokespecial com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor.<init>:()V
putfield com.oracle.svm.core.genscavenge.GCImpl.rememberedSetConstructor:Lcom/oracle/svm/core/genscavenge/GCImpl$RememberedSetConstructor;
2: aload 0
new com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor
dup
invokespecial com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor.<init>:()V
putfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
3: aload 0
new com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor
dup
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
invokespecial com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor.<init>:(Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;)V
putfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
4: aload 0
new com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor
dup
aload 0
invokespecial com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor.<init>:(Lcom/oracle/svm/core/genscavenge/GCImpl;)V
putfield com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRootsVisitor:Lcom/oracle/svm/core/genscavenge/GCImpl$BlackenImageHeapRootsVisitor;
5: aload 0
new com.oracle.svm.core.genscavenge.RuntimeCodeCacheWalker
dup
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
invokespecial com.oracle.svm.core.genscavenge.RuntimeCodeCacheWalker.<init>:(Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)V
putfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheWalker:Lcom/oracle/svm/core/genscavenge/RuntimeCodeCacheWalker;
6: aload 0
new com.oracle.svm.core.heap.RuntimeCodeCacheCleaner
dup
invokespecial com.oracle.svm.core.heap.RuntimeCodeCacheCleaner.<init>:()V
putfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheCleaner:Lcom/oracle/svm/core/heap/RuntimeCodeCacheCleaner;
7: aload 0
new com.oracle.svm.core.genscavenge.GCAccounting
dup
invokespecial com.oracle.svm.core.genscavenge.GCAccounting.<init>:()V
putfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
8: aload 0
new com.oracle.svm.core.genscavenge.Timers
dup
invokespecial com.oracle.svm.core.genscavenge.Timers.<init>:()V
putfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
9: aload 0
new com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation
dup
invokespecial com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation.<init>:()V
putfield com.oracle.svm.core.genscavenge.GCImpl.collectOperation:Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
10: aload 0
new java.lang.OutOfMemoryError
dup
ldc "Garbage-collected heap size exceeded."
invokespecial java.lang.OutOfMemoryError.<init>:(Ljava/lang/String;)V
putfield com.oracle.svm.core.genscavenge.GCImpl.oldGenerationSizeExceeded:Ljava/lang/OutOfMemoryError;
11: aload 0
ldc "GCImpl.GCImpl()"
iconst_0
invokestatic com.oracle.svm.core.heap.NoAllocationVerifier.factory:(Ljava/lang/String;Z)Lcom/oracle/svm/core/heap/NoAllocationVerifier;
putfield com.oracle.svm.core.genscavenge.GCImpl.noAllocationVerifier:Lcom/oracle/svm/core/heap/NoAllocationVerifier;
12: aload 0
new com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser
dup
invokespecial com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.<init>:()V
putfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
13: aload 0
iconst_0
putfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
14: aload 0
invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
putfield com.oracle.svm.core.genscavenge.GCImpl.sizeBefore:Lorg/graalvm/word/UnsignedWord;
15: aload 0
iconst_0
putfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
16: aload 0
invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
putfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
17: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CollectionPolicy.getInitialPolicy:(Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
putfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
18: invokestatic com.oracle.svm.core.jdk.RuntimeSupport.getRuntimeSupport:()Lcom/oracle/svm/core/jdk/RuntimeSupport;
aload 0
invokedynamic run(Lcom/oracle/svm/core/genscavenge/GCImpl;)Ljava/lang/Runnable;
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:
()V
com/oracle/svm/core/genscavenge/GCImpl.printGCSummary()V (7)
()V
invokevirtual com.oracle.svm.core.jdk.RuntimeSupport.addShutdownHook:(Ljava/lang/Runnable;)V
19: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 20 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 void collect(com.oracle.svm.core.heap.GCCause);
descriptor: (Lcom/oracle/svm/core/heap/GCCause;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collect:(Lcom/oracle/svm/core/heap/GCCause;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 2 1 cause Lcom/oracle/svm/core/heap/GCCause;
MethodParameters:
Name Flags
cause
private void collect(com.oracle.svm.core.heap.GCCause, boolean);
descriptor: (Lcom/oracle/svm/core/heap/GCCause;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.possibleCollectionPrologue:()Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 1: aload 0
aload 1
iload 2
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collectWithoutAllocating:(Lcom/oracle/svm/core/heap/GCCause;Z)V
2: aload 0
aload 3
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.possibleCollectionEpilogue:(Lorg/graalvm/word/UnsignedWord;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 4 1 cause Lcom/oracle/svm/core/heap/GCCause;
0 4 2 forceFullGC Z
1 4 3 requestingEpoch Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
cause
forceFullGC
void collectWithoutAllocating(com.oracle.svm.core.heap.GCCause, boolean);
descriptor: (Lcom/oracle/svm/core/heap/GCCause;Z)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: ldc Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
istore 3
start local 3 1: iload 3
invokestatic org.graalvm.nativeimage.StackValue.get:(I)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData
astore 4
start local 4 2: aload 4
checkcast org.graalvm.word.Pointer
iload 3
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
iconst_0
invokestatic com.oracle.svm.core.MemoryUtil.fillToMemoryAtomic:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;B)V
3: aload 4
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.collectOperation:Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setNativeVMOperation:(Lcom/oracle/svm/core/thread/NativeVMOperation;)V
4: aload 4
aload 1
invokevirtual com.oracle.svm.core.heap.GCCause.getId:()I
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setCauseId:(I)V
5: aload 4
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setRequestingEpoch:(Lorg/graalvm/word/UnsignedWord;)V
6: aload 4
iload 2
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setForceFullGC:(Z)V
7: aload 0
aload 4
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.enqueueCollectOperation:(Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;)V
8: aload 4
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.getOutOfMemory:()Z
ifeq 10
9: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.oldGenerationSizeExceeded:Ljava/lang/OutOfMemoryError;
athrow
10: StackMap locals: int com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 11 1 cause Lcom/oracle/svm/core/heap/GCCause;
0 11 2 forceFullGC Z
1 11 3 size I
2 11 4 data Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Avoid races with other threads that also try to trigger a GC")
com.oracle.svm.core.annotate.RestrictHeapAccess(access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access.NO_ALLOCATION:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;, reason = "Must not allocate in the implementation of garbage collection.")
MethodParameters:
Name Flags
cause
forceFullGC
private void enqueueCollectOperation(com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData);
descriptor: (Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.collectOperation:Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation.enqueue:(Lcom/oracle/svm/core/thread/NativeVMOperationData;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 2 1 data Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Used as a transition between uninterruptible and interruptible code", calleeMustBe = false)
MethodParameters:
Name Flags
data
private boolean collectOperation(com.oracle.svm.core.heap.GCCause, org.graalvm.word.UnsignedWord, boolean);
descriptor: (Lcom/oracle/svm/core/heap/GCCause;Lorg/graalvm/word/UnsignedWord;Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.collectOperation:"
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;
1: ldc " epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
2: 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.heap.GCCause.getName:()Ljava/lang/String;
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
3: ldc " requestingEpoch: "
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;
4: invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
5: astore 4
start local 4 6: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 7
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 7
new java.lang.AssertionError
dup
ldc "Collection should be a VMOperation."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals: com.oracle.svm.core.log.Log
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 8
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
aload 2
invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.mutator:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
9: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.startCollectionOrExit:()V
10: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
invokevirtual com.oracle.svm.core.genscavenge.Timers.resetAllExceptMutator:()V
11: aload 0
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
putfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
12: invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.disableAndFlushForAllThreads:()V
13: aload 0
aload 1
invokevirtual com.oracle.svm.core.heap.GCCause.getName:()Ljava/lang/String;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.printGCBefore:(Ljava/lang/String;)V
14: aload 0
aload 1
invokevirtual com.oracle.svm.core.heap.GCCause.getName:()Ljava/lang/String;
iload 3
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collectImpl:(Ljava/lang/String;Z)Z
istore 5
start local 5 15: iconst_0
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getYoungChunkBytesAfter:()Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.setEdenAndYoungGenBytes:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
16: aload 0
aload 1
invokevirtual com.oracle.svm.core.heap.GCCause.getName:()Ljava/lang/String;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.printGCAfter:(Ljava/lang/String;)V
17: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.finishCollection:()V
18: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.mutator:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
pop
19: aload 4
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
20: iload 5
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 21 1 cause Lcom/oracle/svm/core/heap/GCCause;
0 21 2 requestingEpoch Lorg/graalvm/word/UnsignedWord;
0 21 3 forceFullGC Z
6 21 4 trace Lcom/oracle/svm/core/log/Log;
15 21 5 outOfMemory Z
MethodParameters:
Name Flags
cause
requestingEpoch
forceFullGC
private boolean collectImpl(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, 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 "[GCImpl.collectImpl:"
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;
ldc " epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
astore 3
start local 3 1: invokestatic com.oracle.svm.core.genscavenge.GCImpl.precondition:()V
2: aload 3
ldc " Begin collection: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
3: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.noAllocationVerifier:Lcom/oracle/svm/core/heap/NoAllocationVerifier;
invokevirtual com.oracle.svm.core.heap.NoAllocationVerifier.open:()Lcom/oracle/svm/core/heap/NoAllocationVerifier;
astore 5
start local 5 4: aload 3
ldc " Verify before: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
5: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.verifyBefore:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 6
start local 6 6: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
aload 1
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyBeforeGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
7: goto 11
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log top com.oracle.svm.core.heap.NoAllocationVerifier com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
8: astore 7
9: aload 6
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
10: aload 7
athrow
11: StackMap locals:
StackMap stack:
aload 6
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
12: aload 0
iload 2
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.doCollectImpl:(Z)Z
istore 4
start local 4 13: iload 4
ifeq 25
14: iconst_1
invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.setSoftReferencesAreWeak:(Z)V
15: aload 0
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.doCollectImpl:(Z)Z
istore 4
16: goto 20
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log int com.oracle.svm.core.heap.NoAllocationVerifier com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
17: astore 7
18: iconst_0
invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.setSoftReferencesAreWeak:(Z)V
19: aload 7
athrow
20: StackMap locals:
StackMap stack:
iconst_0
invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.setSoftReferencesAreWeak:(Z)V
end local 6 21: goto 25
end local 4 StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log top com.oracle.svm.core.heap.NoAllocationVerifier
StackMap stack: java.lang.Throwable
22: astore 8
23: aload 5
invokevirtual com.oracle.svm.core.heap.NoAllocationVerifier.close:()V
24: aload 8
athrow
start local 4 25: StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log int com.oracle.svm.core.heap.NoAllocationVerifier
StackMap stack:
aload 5
invokevirtual com.oracle.svm.core.heap.NoAllocationVerifier.close:()V
26: aload 3
ldc " Verify after: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
27: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.verifyAfter:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 6
start local 6 28: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
aload 1
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
29: goto 33
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log int com.oracle.svm.core.heap.NoAllocationVerifier com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
30: astore 7
31: aload 6
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
32: aload 7
athrow
33: StackMap locals:
StackMap stack:
aload 6
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
34: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.postcondition:()V
35: 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
36: iload 4
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 37 1 cause Ljava/lang/String;
0 37 2 forceFullGC Z
1 37 3 trace Lcom/oracle/svm/core/log/Log;
13 22 4 outOfMemory Z
25 37 4 outOfMemory Z
4 37 5 nav Lcom/oracle/svm/core/heap/NoAllocationVerifier;
6 21 6 verifyBeforeTimer Lcom/oracle/svm/core/genscavenge/Timer;
28 37 6 verifyAfterTime Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
6 8 8 any
15 17 17 any
4 22 22 any
28 30 30 any
MethodParameters:
Name Flags
cause
forceFullGC
private boolean doCollectImpl(boolean);
descriptor: (Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.beforeGarbageCollection:()V
1: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.beforeCollection:()V
2: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 3: aload 0
iload 1
ifne 4
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
invokevirtual com.oracle.svm.core.genscavenge.CollectionPolicy.collectCompletely:()Z
ifne 4
iconst_0
goto 5
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.Timer
StackMap stack: com.oracle.svm.core.genscavenge.GCImpl
4: iconst_1
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.Timer
StackMap stack: com.oracle.svm.core.genscavenge.GCImpl int
5: putfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
6: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
ifeq 11
7: getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.CollectYoungGenerationSeparately: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
ifeq 9
8: aload 0
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scavenge:(Z)V
9: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scavenge:(Z)V
10: goto 17
StackMap locals:
StackMap stack:
11: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
invokevirtual com.oracle.svm.core.genscavenge.CollectionPolicy.collectIncrementally:()Z
ifeq 17
12: aload 0
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scavenge:(Z)V
13: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 3
15: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
16: aload 3
athrow
17: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
18: invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.afterGarbageCollection:(Z)V
19: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.afterCollection:(ZLcom/oracle/svm/core/genscavenge/Timer;)V
20: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumHeapSize:()Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 21: invokestatic com.oracle.svm.core.genscavenge.GCImpl.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 22: aload 4
aload 3
invokeinterface org.graalvm.word.UnsignedWord.aboveThan:(Lorg/graalvm/word/UnsignedWord;)Z
istore 5
start local 5 23: aload 4
aload 3
invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.afterCollection:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
24: iload 5
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 25 1 forceFullGC Z
3 25 2 collectionTimer Lcom/oracle/svm/core/genscavenge/Timer;
21 25 3 maxBytes Lorg/graalvm/word/UnsignedWord;
22 25 4 usedBytes Lorg/graalvm/word/UnsignedWord;
23 25 5 outOfMemory Z
Exception table:
from to target type
3 14 14 any
MethodParameters:
Name Flags
forceFullGC
public static org.graalvm.word.UnsignedWord getChunkBytes();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
astore 0
start local 0 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
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;
astore 1
start local 1 2: aload 0
aload 1
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 youngBytes Lorg/graalvm/word/UnsignedWord;
2 3 1 oldBytes Lorg/graalvm/word/UnsignedWord;
private void printGCBefore(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 2
start local 2 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 3
start local 3 2: aload 0
getstatic com.oracle.svm.core.SubstrateGCOptions.PrintGC: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
ifne 3
getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
ifeq 4
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
StackMap stack: com.oracle.svm.core.genscavenge.GCImpl
3: invokestatic com.oracle.svm.core.genscavenge.GCImpl.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
goto 5
StackMap locals:
StackMap stack: com.oracle.svm.core.genscavenge.GCImpl
4: invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
StackMap stack: com.oracle.svm.core.genscavenge.GCImpl org.graalvm.word.UnsignedWord
5: putfield com.oracle.svm.core.genscavenge.GCImpl.sizeBefore:Lorg/graalvm/word/UnsignedWord;
6: getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
ifeq 15
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.equal:(I)Z
ifeq 15
7: aload 2
ldc "[Heap policy parameters: "
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
8: aload 2
ldc " YoungGenerationSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumYoungGenerationSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
9: aload 2
ldc " MaximumHeapSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumHeapSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
10: aload 2
ldc " MinimumHeapSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMinimumHeapSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
11: aload 2
ldc " AlignedChunkSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
12: aload 2
ldc " LargeArrayThreshold: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getLargeArrayThreshold:()Lorg/graalvm/word/UnsignedWord;
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
13: getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
ifeq 15
14: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
aload 2
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
15: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
ifeq 27
16: aload 2
ldc "["
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
17: aload 2
ldc "["
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
18: invokestatic java.lang.System.nanoTime:()J
lstore 4
start local 4 19: getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimeStamps: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
ifeq 22
20: aload 2
lload 4
invokestatic com.oracle.svm.core.genscavenge.Timer.getTimeSinceFirstAllocation:(J)J
invokestatic com.oracle.svm.core.util.TimeUtils.roundNanosToMillis:(J)J
invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
ldc " msec: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
21: goto 23
22: StackMap locals: long
StackMap stack:
aload 2
lload 4
invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
pop
23: StackMap locals:
StackMap stack:
aload 2
ldc " GC:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " before"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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;
pop
24: getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
ifeq 26
25: aload 3
aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;)V
26: StackMap locals:
StackMap stack:
aload 2
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
end local 4 27: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 28 1 cause Ljava/lang/String;
1 28 2 verboseGCLog Lcom/oracle/svm/core/log/Log;
2 28 3 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
19 27 4 startTime J
MethodParameters:
Name Flags
cause
private void printGCAfter(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 2
start local 2 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 3
start local 3 2: getstatic com.oracle.svm.core.SubstrateGCOptions.PrintGC: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
ifne 3
getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
ifeq 41
3: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
StackMap stack:
getstatic com.oracle.svm.core.SubstrateGCOptions.PrintGC: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
ifeq 19
4: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 5: invokestatic com.oracle.svm.core.genscavenge.GCImpl.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
astore 5
start local 5 6: aload 4
ldc "["
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
7: getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimeStamps: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
ifeq 10
8: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.getFinish:()J
lstore 6
start local 6 9: aload 4
lload 6
invokestatic com.oracle.svm.core.genscavenge.Timer.getTimeSinceFirstAllocation:(J)J
invokestatic com.oracle.svm.core.util.TimeUtils.roundNanosToMillis:(J)J
invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
ldc " msec: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
end local 6 10: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord
StackMap stack:
aload 4
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
ifeq 11
ldc "Full GC"
goto 12
StackMap locals:
StackMap stack: com.oracle.svm.core.log.Log
11: ldc "Incremental GC"
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord
StackMap stack: com.oracle.svm.core.log.Log java.lang.String
12: invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
13: aload 4
ldc " ("
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 ") "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
14: aload 4
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.sizeBefore:Lorg/graalvm/word/UnsignedWord;
sipush 1024
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
15: aload 4
ldc "K->"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
16: aload 4
aload 5
sipush 1024
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc "K, "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
17: aload 4
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.getMeasuredNanos:()J
ldc 1000000000
ldc 7
invokevirtual com.oracle.svm.core.log.Log.rational:(JJJ)Lcom/oracle/svm/core/log/Log;
ldc " secs"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
18: aload 4
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
end local 5 end local 4 19: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
ifeq 41
20: aload 2
ldc " ["
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
21: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.getFinish:()J
lstore 4
start local 4 22: getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimeStamps: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
ifeq 25
23: aload 2
lload 4
invokestatic com.oracle.svm.core.genscavenge.Timer.getTimeSinceFirstAllocation:(J)J
invokestatic com.oracle.svm.core.util.TimeUtils.roundNanosToMillis:(J)J
invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
ldc " msec: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
24: goto 26
25: StackMap locals: long
StackMap stack:
aload 2
lload 4
invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
pop
26: StackMap locals:
StackMap stack:
aload 2
ldc " GC:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " after "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " epoch: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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;
pop
27: aload 2
ldc " policy: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
28: aload 2
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getPolicy:()Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
invokevirtual com.oracle.svm.core.genscavenge.CollectionPolicy.getName:()Ljava/lang/String;
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
29: aload 2
ldc " type: "
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.GCImpl.completeCollection:Z
ifeq 30
ldc "complete"
goto 31
StackMap locals:
StackMap stack: com.oracle.svm.core.log.Log
30: ldc "incremental"
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl long
StackMap stack: com.oracle.svm.core.log.Log java.lang.String
31: invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
32: getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
ifeq 34
33: aload 3
aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;)V
34: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimes: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
ifne 38
35: aload 2
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
36: aload 2
ldc " collection time: "
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.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.getMeasuredNanos:()J
invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
ldc " nanoSeconds"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
37: goto 39
38: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timers.logAfterCollection:(Lcom/oracle/svm/core/log/Log;)V
39: StackMap locals:
StackMap stack:
aload 2
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
40: aload 2
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
end local 4 41: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 42 1 cause Ljava/lang/String;
1 42 2 verboseGCLog Lcom/oracle/svm/core/log/Log;
2 42 3 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
5 19 4 printGCLog Lcom/oracle/svm/core/log/Log;
6 19 5 sizeAfter Lorg/graalvm/word/UnsignedWord;
9 10 6 finishNanos J
22 41 4 finishNanos J
MethodParameters:
Name Flags
cause
private static void precondition();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 0
start local 0 1: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
ifne 2
new java.lang.AssertionError
dup
ldc "oldGen.getToSpace() should be empty before a collection."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: com.oracle.svm.core.genscavenge.OldGeneration
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
private void postcondition();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 1
start local 1 1: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
astore 2
start local 2 2: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 3
start local 3 3: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.verbosePostCondition:()V
4: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 5
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
ifne 5
new java.lang.AssertionError
dup
ldc "youngGen.getEden() should be empty after a collection."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.YoungGeneration com.oracle.svm.core.genscavenge.OldGeneration
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 6
aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
ifne 6
new java.lang.AssertionError
dup
ldc "oldGen.getToSpace() should be empty after a collection."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
return
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/GCImpl;
1 7 1 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
2 7 2 youngGen Lcom/oracle/svm/core/genscavenge/YoungGeneration;
3 7 3 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
private void verbosePostCondition();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 1
start local 1 1: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
astore 2
start local 2 2: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 3
start local 3 3: invokestatic com.oracle.svm.core.genscavenge.GCImpl.runtimeAssertions:()Z
ifeq 43
4: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 5: aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
ifne 16
6: aload 4
ldc "[GCImpl.postcondition: Eden space should be empty after a collection."
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: aload 4
ldc " These should all be 0:"
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
8: aload 4
ldc " Eden space first AlignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
9: aload 4
ldc " Eden space last AlignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
10: aload 4
ldc " Eden space first UnalignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
11: aload 4
ldc " Eden space last UnalignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
12: aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
aload 4
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.Space.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
13: aload 4
ldc " verifying the heap:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
14: aload 1
ldc "because Eden space is not empty"
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
15: aload 4
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
16: StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.YoungGeneration com.oracle.svm.core.genscavenge.OldGeneration com.oracle.svm.core.log.Log
StackMap stack:
iconst_0
istore 5
start local 5 17: goto 30
18: StackMap locals: int
StackMap stack:
aload 2
iload 5
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
ifne 29
19: aload 4
ldc "[GCImpl.postcondition: Survivor toSpace should be empty after a collection."
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
20: aload 4
ldc " These should all be 0:"
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
21: aload 4
ldc " Survivor space "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 5
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
ldc " first AlignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
iload 5
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
22: aload 4
ldc " Survivor space "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 5
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
ldc " last AlignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
iload 5
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
23: aload 4
ldc " Survivor space "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 5
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
ldc " first UnalignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
iload 5
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
24: aload 4
ldc " Survivor space "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 5
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
ldc " last UnalignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
iload 5
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
25: aload 2
iload 5
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
aload 4
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.Space.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
26: aload 4
ldc " verifying the heap:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
27: aload 1
ldc "because Survivor toSpace is not empty"
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
28: aload 4
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
29: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
30: iload 5
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
if_icmplt 18
end local 5 31: aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
ifne 43
32: aload 4
ldc "[GCImpl.postcondition: oldGen toSpace should be empty after a collection."
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
33: aload 4
ldc " These should all be 0:"
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
34: aload 4
ldc " oldGen toSpace first AlignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
35: aload 4
ldc " oldGen toSpace last AlignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
36: aload 4
ldc " oldGen.toSpace first UnalignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
37: aload 4
ldc " oldGen.toSpace last UnalignedChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
38: aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
aload 4
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.Space.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
39: aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getFromSpace:()Lcom/oracle/svm/core/genscavenge/Space;
aload 4
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.Space.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
40: aload 4
ldc " verifying the heap:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
41: aload 1
ldc "because oldGen toSpace is not empty"
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
42: aload 4
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
end local 4 43: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 44 1 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
2 44 2 youngGen Lcom/oracle/svm/core/genscavenge/YoungGeneration;
3 44 3 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
5 43 4 witness Lcom/oracle/svm/core/log/Log;
17 31 5 i I
static boolean runtimeAssertions();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.RuntimeAssertionsSupport.singleton:()Lcom/oracle/svm/core/RuntimeAssertionsSupport;
ldc Lcom/oracle/svm/core/genscavenge/GCImpl;
invokevirtual com.oracle.svm.core.RuntimeAssertionsSupport.desiredAssertionStatus:(Ljava/lang/Class;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public static com.oracle.svm.core.genscavenge.GCImpl getGCImpl();
descriptor: ()Lcom/oracle/svm/core/genscavenge/GCImpl;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
astore 0
start local 0 1: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 2
aload 0
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: com.oracle.svm.core.genscavenge.GCImpl
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 gcImpl Lcom/oracle/svm/core/genscavenge/GCImpl;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
public void collectCompletely(com.oracle.svm.core.heap.GCCause);
descriptor: (Lcom/oracle/svm/core/heap/GCCause;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collect:(Lcom/oracle/svm/core/heap/GCCause;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 2 1 cause Lcom/oracle/svm/core/heap/GCCause;
MethodParameters:
Name Flags
cause
boolean isCompleteCollection();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
private void scavenge(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
invokevirtual com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor.openCounters:()Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor$Counters;
astore 2
start local 2 1: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.scavenge:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " fromDirtyRoots: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 1
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
astore 3
start local 3 2: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.rootScan:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 4
start local 4 3: aload 3
ldc " Cheney scan: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
4: iload 1
ifeq 7
5: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.cheneyScanFromDirtyRoots:()V
6: goto 12
7: StackMap locals: com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.cheneyScanFromRoots:()V
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 5
10: aload 4
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
11: aload 5
athrow
12: StackMap locals:
StackMap stack:
aload 4
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
13: invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
ifeq 21
14: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.cleanCodeCache:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 5
start local 5 15: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.cleanRuntimeCodeCache:()V
16: goto 20
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
17: astore 6
18: aload 5
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
19: aload 6
athrow
20: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
end local 5 21: StackMap locals:
StackMap stack:
aload 3
ldc " Discovered references: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
22: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.referenceObjects:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 5
start local 5 23: invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.processRememberedReferences:()Ljava/lang/ref/Reference;
astore 6
start local 6 24: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
aload 6
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.addToReferencePendingList:(Ljava/lang/ref/Reference;)V
end local 6 25: goto 29
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
26: astore 7
27: aload 5
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
28: aload 7
athrow
29: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
30: aload 3
ldc " Release spaces: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
31: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.releaseSpaces:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 6
start local 6 32: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 33
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.isEmpty:()Z
ifne 33
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
33: StackMap locals: com.oracle.svm.core.genscavenge.Timer
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.releaseSpaces:()V
34: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.release:()V
35: goto 39
StackMap locals:
StackMap stack: java.lang.Throwable
36: astore 7
37: aload 6
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
38: aload 7
athrow
39: StackMap locals:
StackMap stack:
aload 6
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
40: aload 3
ldc " Swap spaces: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
41: invokestatic com.oracle.svm.core.genscavenge.GCImpl.swapSpaces:()V
42: 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
end local 6 end local 5 end local 4 end local 3 43: goto 47
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters
StackMap stack: java.lang.Throwable
44: astore 8
45: aload 2
invokeinterface com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters.close:()V
46: aload 8
athrow
47: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters.close:()V
48: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 49 1 fromDirtyRoots Z
1 49 2 counters Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor$Counters;
2 43 3 trace Lcom/oracle/svm/core/log/Log;
3 43 4 rootScanTimer Lcom/oracle/svm/core/genscavenge/Timer;
15 21 5 cleanCodeCacheTimer Lcom/oracle/svm/core/genscavenge/Timer;
23 43 5 referenceObjectsTimer Lcom/oracle/svm/core/genscavenge/Timer;
24 25 6 newlyPendingList Ljava/lang/ref/Reference<*>;
32 43 6 releaseSpacesTimer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
3 9 9 any
15 17 17 any
23 26 26 any
32 36 36 any
1 44 44 any
MethodParameters:
Name Flags
fromDirtyRoots
private void walkRuntimeCodeCache();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.walkRuntimeCodeCache:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.code.RuntimeCodeInfoMemory.singleton:()Lcom/oracle/svm/core/code/RuntimeCodeInfoMemory;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheWalker:Lcom/oracle/svm/core/genscavenge/RuntimeCodeCacheWalker;
invokevirtual com.oracle.svm.core.code.RuntimeCodeInfoMemory.walkRuntimeMethodsDuringGC:(Lcom/oracle/svm/core/code/RuntimeCodeCache$CodeInfoVisitor;)Z
pop
2: goto 6
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 1
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 8 1 walkRuntimeCodeCacheTimer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
1 3 3 any
private void cleanRuntimeCodeCache();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.cleanRuntimeCodeCache:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.code.RuntimeCodeInfoMemory.singleton:()Lcom/oracle/svm/core/code/RuntimeCodeInfoMemory;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheCleaner:Lcom/oracle/svm/core/heap/RuntimeCodeCacheCleaner;
invokevirtual com.oracle.svm.core.code.RuntimeCodeInfoMemory.walkRuntimeMethodsDuringGC:(Lcom/oracle/svm/core/code/RuntimeCodeCache$CodeInfoVisitor;)Z
pop
2: goto 6
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 1
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 8 1 cleanRuntimeCodeCacheTimer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
1 3 3 any
private void cheneyScanFromRoots();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.cheneyScanFromRoots:"
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;
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.cheneyScanFromRoots:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 2: iconst_0
invokestatic com.oracle.svm.core.genscavenge.GCImpl.prepareForPromotion:(Z)V
3: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.promoteIndividualPinnedObjects:()V
4: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenStackRoots:()V
5: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkThreadLocals:()V
6: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRoots:()V
7: aload 0
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
8: invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
ifeq 11
9: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkRuntimeCodeCache:()V
10: aload 0
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
11: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
invokevirtual com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor.reset:()V
12: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 3
14: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
15: aload 3
athrow
16: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
17: aload 1
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
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 19 1 trace Lcom/oracle/svm/core/log/Log;
2 19 2 cheneyScanFromRootsTimer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
2 13 13 any
private void cheneyScanFromDirtyRoots();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.cheneyScanFromDirtyRoots:"
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;
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.cheneyScanFromDirtyRoots:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 2: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 3
start local 3 3: aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.emptyFromSpaceIntoToSpace:()V
4: iconst_1
invokestatic com.oracle.svm.core.genscavenge.GCImpl.prepareForPromotion:(Z)V
5: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.promoteIndividualPinnedObjects:()V
6: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyCardRoots:()V
7: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenStackRoots:()V
8: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkThreadLocals:()V
9: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyImageHeapRoots:()V
10: aload 0
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
11: invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
ifeq 14
12: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkRuntimeCodeCache:()V
13: aload 0
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
14: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.OldGeneration
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
invokevirtual com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor.reset:()V
end local 3 15: goto 19
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
16: astore 4
17: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
18: aload 4
athrow
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
20: aload 1
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
21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 22 1 trace Lcom/oracle/svm/core/log/Log;
2 22 2 cheneyScanFromDirtyRootsTimer Lcom/oracle/svm/core/genscavenge/Timer;
3 15 3 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
Exception table:
from to target type
2 16 16 any
private void promoteIndividualPinnedObjects();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.promoteIndividualPinnedObjects:"
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;
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.promotePinnedObjects:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 2: invokestatic com.oracle.svm.core.genscavenge.PinnedObjectImpl.claimPinnedObjectList:()Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
astore 3
start local 3 3: goto 10
4: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.PinnedObjectImpl
StackMap stack:
aload 3
astore 4
start local 4 5: aload 4
invokevirtual com.oracle.svm.core.genscavenge.PinnedObjectImpl.getNext:()Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
astore 5
start local 5 6: aload 4
invokevirtual com.oracle.svm.core.genscavenge.PinnedObjectImpl.isOpen:()Z
ifeq 9
7: aload 4
invokestatic com.oracle.svm.core.genscavenge.GCImpl.promotePinnedObject:(Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;)V
8: aload 4
invokestatic com.oracle.svm.core.genscavenge.PinnedObjectImpl.pushPinnedObject:(Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;)V
9: StackMap locals: com.oracle.svm.core.genscavenge.PinnedObjectImpl com.oracle.svm.core.genscavenge.PinnedObjectImpl
StackMap stack:
aload 5
astore 3
end local 5 end local 4 10: StackMap locals:
StackMap stack:
aload 3
ifnonnull 4
end local 3 11: goto 15
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
12: astore 6
13: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
14: aload 6
athrow
15: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
16: aload 1
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 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 18 1 trace Lcom/oracle/svm/core/log/Log;
2 18 2 promotePinnedObjectsTimer Lcom/oracle/svm/core/genscavenge/Timer;
3 11 3 rest Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
5 10 4 first Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
6 10 5 next Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
Exception table:
from to target type
2 12 12 any
private void blackenStackRoots();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.blackenStackRoots:"
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;
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.blackenStackRoots:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 2: invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readCallerStackPointer:()Lorg/graalvm/word/Pointer;
astore 3
start local 3 3: aload 1
ldc "[blackenStackRoots:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " sp: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
4: invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readReturnAddress:()Lorg/graalvm/nativeimage/c/function/CodePointer;
astore 4
start local 4 5: aload 1
ldc " ip: "
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.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
6: ldc Lcom/oracle/svm/core/stack/JavaStackWalk;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.stack.JavaStackWalk
astore 5
start local 5 7: aload 5
aload 3
aload 4
invokestatic com.oracle.svm.core.stack.JavaStackWalker.initWalk:(Lcom/oracle/svm/core/stack/JavaStackWalk;Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;)V
8: aload 0
aload 5
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkStack:(Lcom/oracle/svm/core/stack/JavaStackWalk;)V
9: getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded: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
ifeq 19
10: invokestatic com.oracle.svm.core.thread.VMThreads.firstThread:()Lorg/graalvm/nativeimage/IsolateThread;
astore 6
start local 6 11: goto 18
12: StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer org.graalvm.word.Pointer org.graalvm.nativeimage.c.function.CodePointer com.oracle.svm.core.stack.JavaStackWalk org.graalvm.nativeimage.IsolateThread
StackMap stack:
aload 6
invokestatic org.graalvm.nativeimage.CurrentIsolate.getCurrentThread:()Lorg/graalvm/nativeimage/IsolateThread;
if_acmpne 14
13: goto 17
14: StackMap locals:
StackMap stack:
aload 5
aload 6
invokestatic com.oracle.svm.core.stack.JavaStackWalker.initWalk:(Lcom/oracle/svm/core/stack/JavaStackWalk;Lorg/graalvm/nativeimage/IsolateThread;)Z
ifeq 16
15: aload 0
aload 5
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkStack:(Lcom/oracle/svm/core/stack/JavaStackWalk;)V
16: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
17: StackMap locals:
StackMap stack:
aload 6
invokestatic com.oracle.svm.core.thread.VMThreads.nextThread:(Lorg/graalvm/nativeimage/IsolateThread;)Lorg/graalvm/nativeimage/IsolateThread;
astore 6
StackMap locals:
StackMap stack:
18: aload 6
invokeinterface org.graalvm.nativeimage.IsolateThread.isNonNull:()Z
ifne 12
end local 6 19: StackMap locals:
StackMap stack:
aload 1
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
end local 5 end local 4 end local 3 20: goto 24
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
21: astore 7
22: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
23: aload 7
athrow
24: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
25: aload 1
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
26: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 27 1 trace Lcom/oracle/svm/core/log/Log;
2 27 2 blackenStackRootsTimer Lcom/oracle/svm/core/genscavenge/Timer;
3 20 3 sp Lorg/graalvm/word/Pointer;
5 20 4 ip Lorg/graalvm/nativeimage/c/function/CodePointer;
7 20 5 walk Lcom/oracle/svm/core/stack/JavaStackWalk;
11 19 6 vmThread Lorg/graalvm/nativeimage/IsolateThread;
Exception table:
from to target type
2 21 21 any
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.NeverInline(value = "Starting a stack walk in the caller frame. Note that we could start the stack frame also further down the stack, because GC stack frames must not access any objects that are processed by the GC. But we don't store stack frame information for the first frame we would need to process.")
com.oracle.svm.core.annotate.Uninterruptible(reason = "Required by called JavaStackWalker methods. We are at a safepoint during GC, so it does not change anything for this method.", calleeMustBe = false)
private void walkStack(com.oracle.svm.core.stack.JavaStackWalk);
descriptor: (Lcom/oracle/svm/core/stack/JavaStackWalk;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "This methods accesses a CodeInfo without a tether"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
ldc Lcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.code.SimpleCodeInfoQueryResult
astore 2
start local 2 2: aload 1
invokeinterface com.oracle.svm.core.stack.JavaStackWalk.getSP:()Lorg/graalvm/word/Pointer;
astore 3
start local 3 3: aload 1
invokeinterface com.oracle.svm.core.stack.JavaStackWalk.getPossiblyStaleIP:()Lorg/graalvm/nativeimage/c/function/CodePointer;
astore 4
start local 4 4: aload 1
invokeinterface com.oracle.svm.core.stack.JavaStackWalk.getIPCodeInfo:()Lcom/oracle/svm/core/code/UntetheredCodeInfo;
invokestatic com.oracle.svm.core.code.CodeInfoAccess.convert:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;)Lcom/oracle/svm/core/code/CodeInfo;
astore 5
start local 5 5: aload 3
invokestatic com.oracle.svm.core.deopt.Deoptimizer.checkDeoptimized:(Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/deopt/DeoptimizedFrame;
astore 6
start local 6 6: aload 6
ifnonnull 16
7: aload 5
invokeinterface com.oracle.svm.core.code.CodeInfo.isNull:()Z
ifeq 9
8: aload 3
aload 4
aload 6
invokestatic com.oracle.svm.core.stack.JavaStackWalker.reportUnknownFrameEncountered:(Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;Lcom/oracle/svm/core/deopt/DeoptimizedFrame;)Ljava/lang/RuntimeException;
athrow
9: StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.stack.JavaStackWalk com.oracle.svm.core.code.SimpleCodeInfoQueryResult org.graalvm.word.Pointer org.graalvm.nativeimage.c.function.CodePointer com.oracle.svm.core.code.CodeInfo com.oracle.svm.core.deopt.DeoptimizedFrame
StackMap stack:
aload 5
aload 5
aload 4
invokestatic com.oracle.svm.core.code.CodeInfoAccess.relativeIP:(Lcom/oracle/svm/core/code/CodeInfo;Lorg/graalvm/nativeimage/c/function/CodePointer;)J
aload 2
invokestatic com.oracle.svm.core.code.CodeInfoAccess.lookupCodeInfo:(Lcom/oracle/svm/core/code/CodeInfo;JLcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;)V
10: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 11
aload 3
invokestatic com.oracle.svm.core.deopt.Deoptimizer.checkDeoptimized:(Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/deopt/DeoptimizedFrame;
ifnull 11
new java.lang.AssertionError
dup
ldc "We are at a safepoint, so no deoptimization can have happened even though looking up the code info is not uninterruptible"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 5
invokestatic com.oracle.svm.core.code.CodeInfoAccess.getStackReferenceMapEncoding:(Lcom/oracle/svm/core/code/CodeInfo;)Lcom/oracle/svm/core/c/NonmovableArray;
astore 7
start local 7 12: aload 2
invokeinterface com.oracle.svm.core.code.SimpleCodeInfoQueryResult.getReferenceMapIndex:()J
lstore 8
start local 8 13: lload 8
ldc -1
lcmp
ifne 15
14: aload 3
aload 4
aload 5
invokestatic com.oracle.svm.core.code.CodeInfoTable.reportNoReferenceMap:(Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;Lcom/oracle/svm/core/code/CodeInfo;)Ljava/lang/RuntimeException;
athrow
15: StackMap locals: com.oracle.svm.core.c.NonmovableArray long
StackMap stack:
aload 3
aload 7
lload 8
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
invokestatic com.oracle.svm.core.heap.CodeReferenceMapDecoder.walkOffsetsFromPointer:(Lorg/graalvm/word/PointerBase;Lcom/oracle/svm/core/c/NonmovableArray;JLcom/oracle/svm/core/heap/ObjectReferenceVisitor;)Z
pop
end local 8 end local 7 16: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
ifeq 19
aload 5
invokestatic com.oracle.svm.core.code.CodeInfoTable.getImageCodeInfo:()Lcom/oracle/svm/core/code/CodeInfo;
if_acmpeq 19
17: aload 5
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
invokestatic com.oracle.svm.core.code.RuntimeCodeInfoAccess.walkStrongReferences:(Lcom/oracle/svm/core/code/CodeInfo;Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)Z
pop
18: aload 5
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
invokestatic com.oracle.svm.core.code.RuntimeCodeInfoAccess.walkWeakReferences:(Lcom/oracle/svm/core/code/CodeInfo;Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)Z
pop
19: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 6
invokestatic com.oracle.svm.core.stack.JavaStackWalker.continueWalk:(Lcom/oracle/svm/core/stack/JavaStackWalk;Lcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;Lcom/oracle/svm/core/deopt/DeoptimizedFrame;)Z
ifne 1
20: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 21 1 walk Lcom/oracle/svm/core/stack/JavaStackWalk;
2 21 2 queryResult Lcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;
3 21 3 sp Lorg/graalvm/word/Pointer;
4 21 4 ip Lorg/graalvm/nativeimage/c/function/CodePointer;
5 21 5 codeInfo Lcom/oracle/svm/core/code/CodeInfo;
6 21 6 deoptFrame Lcom/oracle/svm/core/deopt/DeoptimizedFrame;
12 16 7 referenceMapEncoding Lcom/oracle/svm/core/c/NonmovableArray<Ljava/lang/Byte;>;
13 16 8 referenceMapIndex J
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Required by called JavaStackWalker methods. We are at a safepoint during GC, so it does not change anything for this method.", calleeMustBe = false)
MethodParameters:
Name Flags
walk
private void walkThreadLocals();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[walkRegisteredObjectReferences"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)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;
astore 1
start local 1 1: getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded: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
ifeq 11
2: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.walkThreadLocals:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 3: aload 1
ldc "[ThreadLocalsWalker:"
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: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
invokestatic com.oracle.svm.core.genscavenge.ThreadLocalMTWalker.walk:(Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)V
5: aload 1
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: goto 10
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
7: astore 3
8: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
9: aload 3
athrow
10: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
end local 2 11: StackMap locals:
StackMap stack:
aload 1
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: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 13 1 trace Lcom/oracle/svm/core/log/Log;
3 11 2 walkThreadLocalsTimer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
3 7 7 any
private void blackenDirtyImageHeapRoots();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.usesImageHeapCardMarking:()Z
ifne 3
1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRoots:()V
2: return
3: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[blackenDirtyImageHeapRoots:"
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;
astore 1
start local 1 4: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.blackenImageHeapRoots:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 5: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getImageHeapInfo:()Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
astore 3
start local 3 6: aload 0
aload 3
getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstAlignedChunkWithRememberedSet:J
invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
7: aload 3
getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstUnalignedChunkWithRememberedSet:J
invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
8: invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyImageHeapChunkRoots:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
9: invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
ifeq 19
10: invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.getImageHeapInfo:()Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
astore 4
start local 4 11: aload 4
ifnull 19
12: aload 0
aload 4
getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstAlignedChunkWithRememberedSet:J
invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
13: aload 4
getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstUnalignedChunkWithRememberedSet:J
invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
14: invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyImageHeapChunkRoots:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
end local 4 end local 3 15: goto 19
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
16: astore 5
17: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
18: aload 5
athrow
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
20: aload 1
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
21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
4 22 1 trace Lcom/oracle/svm/core/log/Log;
5 22 2 blackenImageHeapRootsTimer Lcom/oracle/svm/core/genscavenge/Timer;
6 15 3 info Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
11 15 4 auxInfo Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
Exception table:
from to target type
5 16 16 any
private void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader, com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
astore 3
start local 3 1: goto 4
2: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 3
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
iconst_1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.walkDirtyObjects:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
pop
3: aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 3
4: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 2
5: aload 2
astore 4
start local 4 6: goto 9
7: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 4
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
iconst_1
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.walkDirtyObjects:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
pop
8: aload 4
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 4
9: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 7
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 11 1 firstAligned Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
0 11 2 firstUnaligned Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 11 3 aligned Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
6 11 4 unaligned Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
firstAligned
firstUnaligned
private static <T extends com.oracle.svm.core.genscavenge.HeapChunk$Header<T>> T asImageHeapChunk();
descriptor: (J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: lload 0
lconst_0
lcmp
ifge 2
1: invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.HeapChunk$Header
areturn
2: StackMap locals:
StackMap stack:
lload 0
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 3: invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.heapBase:()Lorg/graalvm/word/Pointer;
aload 2
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.core.genscavenge.HeapChunk$Header
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 offsetInImageHeap J
3 4 2 offset Lorg/graalvm/word/UnsignedWord;
Signature: <T::Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;>(J)TT;
MethodParameters:
Name Flags
offsetInImageHeap
private void blackenImageHeapRoots();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[blackenImageHeapRoots:"
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;
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.blackenImageHeapRoots:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 2: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRootsVisitor:Lcom/oracle/svm/core/genscavenge/GCImpl$BlackenImageHeapRootsVisitor;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkNativeImageHeapRegions:(Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
pop
3: goto 7
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
4: astore 3
5: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
6: aload 3
athrow
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
8: aload 1
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: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 10 1 trace Lcom/oracle/svm/core/log/Log;
2 10 2 blackenImageHeapRootsTimer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
2 4 4 any
private void blackenDirtyCardRoots();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.blackenDirtyCardRoots:"
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;
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.blackenDirtyCardRoots:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 2
start local 2 2: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 3
start local 3 3: aload 3
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.walkDirtyObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;Z)V
end local 3 4: goto 8
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
5: astore 4
6: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
7: aload 4
athrow
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
9: aload 1
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
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 11 1 trace Lcom/oracle/svm/core/log/Log;
2 11 2 blackenDirtyCardRootsTimer Lcom/oracle/svm/core/genscavenge/Timer;
3 4 3 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
Exception table:
from to target type
2 5 5 any
private static void prepareForPromotion(boolean);
descriptor: (Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.prepareForPromotion:"
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;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 3
start local 3 3: aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.prepareForPromotion:()V
4: iload 0
ifeq 6
5: aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.prepareForPromotion:()V
6: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.OldGeneration
StackMap stack:
aload 1
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: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 isIncremental Z
1 8 1 trace Lcom/oracle/svm/core/log/Log;
2 8 2 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
3 8 3 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
MethodParameters:
Name Flags
isIncremental
private void scanGreyObjects(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.scanGreyObjects"
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;
astore 2
start local 2 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 4
start local 4 3: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.scanGreyObjects:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 5
start local 5 4: iload 1
ifeq 7
5: invokestatic com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjectsLoop:()V
6: goto 12
7: StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.OldGeneration com.oracle.svm.core.genscavenge.Timer
StackMap stack:
aload 4
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.scanGreyObjects:()Z
pop
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 6
10: aload 5
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
11: aload 6
athrow
12: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
13: aload 2
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
14: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
0 15 1 isIncremental Z
1 15 2 trace Lcom/oracle/svm/core/log/Log;
2 15 3 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
3 15 4 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
4 15 5 scanGreyObjectsTimer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
4 9 9 any
MethodParameters:
Name Flags
isIncremental
private static void scanGreyObjectsLoop();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=0
0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.scanGreyObjectsLoop"
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;
astore 0
start local 0 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
astore 2
start local 2 3: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 3
start local 3 4: iconst_1
istore 4
start local 4 5: goto 8
6: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.YoungGeneration com.oracle.svm.core.genscavenge.OldGeneration int
StackMap stack:
aload 2
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.scanGreyObjects:()Z
istore 4
7: iload 4
aload 3
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.scanGreyObjects:()Z
ior
istore 4
8: StackMap locals:
StackMap stack:
iload 4
ifne 6
9: aload 0
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
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 11 0 trace Lcom/oracle/svm/core/log/Log;
2 11 1 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
3 11 2 youngGen Lcom/oracle/svm/core/genscavenge/YoungGeneration;
4 11 3 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
5 11 4 hasGrey Z
private static void promotePinnedObject(com.oracle.svm.core.genscavenge.PinnedObjectImpl);
descriptor: (Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.promotePinnedObject"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " pinned: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 3
start local 3 3: aload 0
invokevirtual com.oracle.svm.core.genscavenge.PinnedObjectImpl.getObject:()Ljava/lang/Object;
astore 4
start local 4 4: aload 4
ifnull 7
aload 2
aload 4
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Ljava/lang/Object;)Z
ifne 7
5: aload 1
ldc " referent: "
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;
pop
6: aload 3
aload 4
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.promoteObjectChunk:(Ljava/lang/Object;)V
7: StackMap locals: com.oracle.svm.core.genscavenge.PinnedObjectImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.OldGeneration java.lang.Object
StackMap stack:
aload 1
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
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 pinned Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
1 9 1 trace Lcom/oracle/svm/core/log/Log;
2 9 2 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
3 9 3 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
4 9 4 referent Ljava/lang/Object;
MethodParameters:
Name Flags
pinned
private static void swapSpaces();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=0
0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.swapSpaces:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 0
start local 0 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 2
start local 2 3: aload 1
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.swapSpaces:()V
4: aload 2
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.swapSpaces:()V
5: aload 0
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: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 trace Lcom/oracle/svm/core/log/Log;
2 7 1 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
3 7 2 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
private void releaseSpaces();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[GCImpl.releaseSpaces:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.releaseSpaces:(Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;)V
3: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
ifeq 5
4: aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.releaseSpaces:(Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;)V
5: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
StackMap stack:
aload 1
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: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
1 7 1 trace Lcom/oracle/svm/core/log/Log;
2 7 2 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
boolean isCollectionInProgress();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
private void startCollectionOrExit();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
invokestatic com.oracle.svm.core.genscavenge.GCImpl$CollectionInProgressError.exitIf:(Z)V
1: aload 0
iconst_1
putfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
private void finishCollection();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
org.graalvm.word.UnsignedWord possibleCollectionPrologue();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
void possibleCollectionEpilogue(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.thread.VMOperation.isInProgress:()Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.thread.JavaThreads.currentJavaThreadInitialized:()Z
ifne 6
5: return
6: StackMap locals:
StackMap stack:
new com.oracle.svm.core.genscavenge.Timer
dup
ldc "Enqueuing pending references and invoking internal cleaners"
invokespecial com.oracle.svm.core.genscavenge.Timer.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: aload 2
invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
astore 3
start local 3 8: invokestatic com.oracle.svm.core.heap.ReferenceHandler.maybeProcessCurrentlyPending:()V
9: goto 13
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl org.graalvm.word.UnsignedWord com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.Timer
StackMap stack: java.lang.Throwable
10: astore 4
11: aload 3
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
12: aload 4
athrow
13: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
14: getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
ifeq 17
getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimes: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
ifeq 17
15: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[GC epilogue reference processing: "
aload 2
invokestatic com.oracle.svm.core.genscavenge.Timers.logOneTimer:(Lcom/oracle/svm/core/log/Log;Ljava/lang/String;Lcom/oracle/svm/core/genscavenge/Timer;)V
16: invokestatic com.oracle.svm.core.log.Log.log:()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
17: StackMap locals:
StackMap stack:
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/GCImpl;
0 18 1 requestingEpoch Lorg/graalvm/word/UnsignedWord;
7 18 2 refsTimer Lcom/oracle/svm/core/genscavenge/Timer;
8 18 3 timer Lcom/oracle/svm/core/genscavenge/Timer;
Exception table:
from to target type
8 10 10 any
MethodParameters:
Name Flags
requestingEpoch
public org.graalvm.word.UnsignedWord getCollectionEpoch();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
public com.oracle.svm.core.genscavenge.GCAccounting getAccounting();
descriptor: ()Lcom/oracle/svm/core/genscavenge/GCAccounting;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
public com.oracle.svm.core.genscavenge.CollectionPolicy getPolicy();
descriptor: ()Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor getGreyToBlackObjectVisitor();
descriptor: ()Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor getRememberedSetConstructor();
descriptor: ()Lcom/oracle/svm/core/genscavenge/GCImpl$RememberedSetConstructor;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.rememberedSetConstructor:Lcom/oracle/svm/core/genscavenge/GCImpl$RememberedSetConstructor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
private void printGCSummary();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=20, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCSummary: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
ifne 2
1: return
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 1
start local 1 3: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "YoungGenerationSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumYoungGenerationSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
4: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "MinimumHeapSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMinimumHeapSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
5: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "MaximumHeapSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumHeapSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
6: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "AlignedChunkSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
7: ldc "PrintGCSummaryShutdownHook"
invokedynamic invoke()Lcom/oracle/svm/core/SubstrateUtil$Thunk;
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:
()V
com/oracle/svm/core/genscavenge/ThreadLocalAllocation.disableAndFlushForAllThreads()V (6)
()V
invokestatic com.oracle.svm.core.thread.JavaVMOperation.enqueueBlockingSafepoint:(Ljava/lang/String;Lcom/oracle/svm/core/SubstrateUtil$Thunk;)V
8: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
astore 2
start local 2 9: aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
astore 3
start local 3 10: aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 11: aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.computeObjectBytes:()Lorg/graalvm/word/UnsignedWord;
astore 5
start local 5 12: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getAllocatedChunkBytes:()Lorg/graalvm/word/UnsignedWord;
aload 4
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 6
start local 6 13: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getAllocatedObjectBytes:()Lorg/graalvm/word/UnsignedWord;
aload 5
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 7
start local 7 14: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "CollectedTotalChunkBytes: "
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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCollectedTotalChunkBytes:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
15: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "CollectedTotalObjectBytes: "
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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCollectedTotalObjectBytes:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
16: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "AllocatedNormalChunkBytes: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 6
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
17: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "AllocatedNormalObjectBytes: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 7
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
18: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getIncrementalCollectionTotalNanos:()J
lstore 8
start local 8 19: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "IncrementalGCCount: "
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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getIncrementalCollectionCount:()J
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
20: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "IncrementalGCNanos: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
lload 8
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
21: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCompleteCollectionTotalNanos:()J
lstore 10
start local 10 22: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "CompleteGCCount: "
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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCompleteCollectionCount:()J
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
23: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "CompleteGCNanos: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
lload 10
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
24: lload 8
lload 10
ladd
lstore 12
start local 12 25: aload 0
getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
getfield com.oracle.svm.core.genscavenge.Timers.mutator:Lcom/oracle/svm/core/genscavenge/Timer;
invokevirtual com.oracle.svm.core.genscavenge.Timer.getMeasuredNanos:()J
lstore 14
start local 14 26: lload 12
lload 14
ladd
lstore 16
start local 16 27: lconst_0
lload 16
lcmp
ifge 28
ldc 100
lload 12
lmul
lload 16
invokestatic com.oracle.svm.core.util.TimeUtils.roundedDivide:(JJ)J
goto 29
StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.Space org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long long long long long
StackMap stack:
28: lconst_0
StackMap locals:
StackMap stack: long
29: lstore 18
start local 18 30: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "GCNanos: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
lload 12
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
31: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "TotalNanos: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
lload 16
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
32: aload 1
ldc "PrintGCSummary: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "GCLoadPercent: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
lload 18
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
33: return
end local 18 end local 16 end local 14 end local 12 end local 10 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/oracle/svm/core/genscavenge/GCImpl;
3 34 1 log Lcom/oracle/svm/core/log/Log;
9 34 2 heap Lcom/oracle/svm/core/genscavenge/HeapImpl;
10 34 3 edenSpace Lcom/oracle/svm/core/genscavenge/Space;
11 34 4 youngChunkBytes Lorg/graalvm/word/UnsignedWord;
12 34 5 youngObjectBytes Lorg/graalvm/word/UnsignedWord;
13 34 6 allocatedChunkBytes Lorg/graalvm/word/UnsignedWord;
14 34 7 allocatedObjectBytes Lorg/graalvm/word/UnsignedWord;
19 34 8 incrementalNanos J
22 34 10 completeNanos J
25 34 12 gcNanos J
26 34 14 mutatorNanos J
27 34 16 totalNanos J
30 34 18 roundedGCLoad J
}
SourceFile: "GCImpl.java"
NestMembers:
com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser com.oracle.svm.core.genscavenge.GCImpl$CollectionInProgressError com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor
InnerClasses:
public abstract ImageHeapRegionVisitor = com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor of com.oracle.svm.core.MemoryWalker
public abstract Thunk = com.oracle.svm.core.SubstrateUtil$Thunk of com.oracle.svm.core.SubstrateUtil
public final Access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access of com.oracle.svm.core.annotate.RestrictHeapAccess
public abstract CodeInfoVisitor = com.oracle.svm.core.code.RuntimeCodeCache$CodeInfoVisitor of com.oracle.svm.core.code.RuntimeCodeCache
public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
private BlackenImageHeapRootsVisitor = com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor of com.oracle.svm.core.genscavenge.GCImpl
public ChunkReleaser = com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser of com.oracle.svm.core.genscavenge.GCImpl
final CollectionInProgressError = com.oracle.svm.core.genscavenge.GCImpl$CollectionInProgressError of com.oracle.svm.core.genscavenge.GCImpl
private CollectionVMOperation = com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation of com.oracle.svm.core.genscavenge.GCImpl
private abstract CollectionVMOperationData = com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData of com.oracle.svm.core.genscavenge.GCImpl
RememberedSetConstructor = com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor of com.oracle.svm.core.genscavenge.GCImpl
public abstract Counters = com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters of com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor
public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk
public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk
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