public interface RememberedSet
| Modifier and Type | Method and Description |
|---|---|
void |
clearRememberedSet(AlignedHeapChunk.AlignedHeader chunk)
Clears the remembered set of an aligned chunk.
|
void |
clearRememberedSet(UnalignedHeapChunk.UnalignedHeader chunk)
Clears the remembered set of an unaligned chunk.
|
org.graalvm.compiler.nodes.gc.BarrierSet |
createBarrierSet(jdk.vm.ci.meta.MetaAccessProvider metaAccess)
Creates the barrier set that the compiler should use for emitting read/write barriers.
|
void |
dirtyCardForAlignedObject(Object object,
boolean verifyOnly)
Marks an object as dirty.
|
void |
dirtyCardForUnalignedObject(Object object,
boolean verifyOnly)
Marks an object as dirty.
|
void |
dirtyCardIfNecessary(Object holderObject,
Object object)
Marks the
holderObject as dirty if needed according to the location of
object. |
void |
enableRememberedSetForAlignedChunk(HostedByteBufferPointer chunk,
int chunkPosition,
List<ImageHeapObject> objects)
Enables remembered set tracking for an aligned chunk and its objects.
|
void |
enableRememberedSetForChunk(AlignedHeapChunk.AlignedHeader chunk)
Enables remembered set tracking for an aligned chunk and its objects.
|
void |
enableRememberedSetForChunk(UnalignedHeapChunk.UnalignedHeader chunk)
Enables remembered set tracking for an unaligned chunk and its objects.
|
void |
enableRememberedSetForObject(AlignedHeapChunk.AlignedHeader chunk,
Object obj)
Enables remembered set tracking for a single object in an aligned chunk.
|
void |
enableRememberedSetForUnalignedChunk(HostedByteBufferPointer chunk)
Enables remembered set tracking for an unaligned chunk and its objects.
|
static RememberedSet |
get() |
org.graalvm.word.UnsignedWord |
getHeaderSizeOfAlignedChunk()
Returns the header size of aligned chunks.
|
org.graalvm.word.UnsignedWord |
getHeaderSizeOfUnalignedChunk()
Returns the header size of unaligned chunks.
|
boolean |
hasRememberedSet(org.graalvm.word.UnsignedWord header)
Checks if remembered set tracking is enabled for an object.
|
boolean |
verify(AlignedHeapChunk.AlignedHeader firstAlignedHeapChunk)
Verify the remembered set for an aligned chunk.
|
boolean |
verify(UnalignedHeapChunk.UnalignedHeader firstUnalignedHeapChunk)
Verify the remembered set for an unaligned chunk.
|
void |
walkDirtyObjects(AlignedHeapChunk.AlignedHeader chunk,
GreyToBlackObjectVisitor visitor,
boolean clean)
Walks all dirty objects in an aligned chunk.
|
void |
walkDirtyObjects(Space space,
GreyToBlackObjectVisitor visitor,
boolean clean)
Walks all dirty objects in a
Space. |
void |
walkDirtyObjects(UnalignedHeapChunk.UnalignedHeader chunk,
GreyToBlackObjectVisitor visitor,
boolean clean)
Walks all dirty objects in an unaligned chunk.
|
static RememberedSet get()
org.graalvm.compiler.nodes.gc.BarrierSet createBarrierSet(jdk.vm.ci.meta.MetaAccessProvider metaAccess)
org.graalvm.word.UnsignedWord getHeaderSizeOfAlignedChunk()
org.graalvm.word.UnsignedWord getHeaderSizeOfUnalignedChunk()
void enableRememberedSetForAlignedChunk(HostedByteBufferPointer chunk, int chunkPosition, List<ImageHeapObject> objects)
void enableRememberedSetForUnalignedChunk(HostedByteBufferPointer chunk)
void enableRememberedSetForChunk(AlignedHeapChunk.AlignedHeader chunk)
void enableRememberedSetForChunk(UnalignedHeapChunk.UnalignedHeader chunk)
void enableRememberedSetForObject(AlignedHeapChunk.AlignedHeader chunk, Object obj)
void clearRememberedSet(AlignedHeapChunk.AlignedHeader chunk)
void clearRememberedSet(UnalignedHeapChunk.UnalignedHeader chunk)
boolean hasRememberedSet(org.graalvm.word.UnsignedWord header)
void dirtyCardForAlignedObject(Object object, boolean verifyOnly)
void dirtyCardForUnalignedObject(Object object, boolean verifyOnly)
void dirtyCardIfNecessary(Object holderObject, Object object)
holderObject as dirty if needed according to the location of
object. May only be called for holderObjects for which remembered set
tracking is enabled.void walkDirtyObjects(AlignedHeapChunk.AlignedHeader chunk, GreyToBlackObjectVisitor visitor, boolean clean)
void walkDirtyObjects(UnalignedHeapChunk.UnalignedHeader chunk, GreyToBlackObjectVisitor visitor, boolean clean)
void walkDirtyObjects(Space space, GreyToBlackObjectVisitor visitor, boolean clean)
Space.boolean verify(AlignedHeapChunk.AlignedHeader firstAlignedHeapChunk)
boolean verify(UnalignedHeapChunk.UnalignedHeader firstUnalignedHeapChunk)