org.mmtk.plan.refcount.generational
Class GenRCMutator
java.lang.Object
org.mmtk.plan.MutatorContext
org.mmtk.plan.SimpleMutator
org.mmtk.plan.StopTheWorldMutator
org.mmtk.plan.refcount.RCBaseMutator
org.mmtk.plan.refcount.generational.GenRCMutator
- All Implemented Interfaces:
- Constants
public class GenRCMutator
- extends RCBaseMutator
This class implements the mutator context for a simple reference counting collector.
Fields inherited from interface org.mmtk.utility.Constants |
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING |
Methods inherited from class org.mmtk.plan.MutatorContext |
addressBulkCopy, addressRead, addressTryCompareAndSwap, addressWrite, booleanBulkCopy, booleanRead, booleanWrite, byteBulkCopy, byteRead, byteWrite, charBulkCopy, charRead, charWrite, checkAllocator, deinitMutator, doubleBulkCopy, doubleRead, doubleWrite, extentBulkCopy, extentRead, extentWrite, floatBulkCopy, floatRead, floatWrite, getId, getLog, initMutator, intBulkCopy, intRead, intTryCompareAndSwap, intWrite, javaLangReferenceReadBarrier, longBulkCopy, longRead, longTryCompareAndSwap, longWrite, objectReferenceNonHeapRead, objectReferenceNonHeapWrite, objectReferenceRead, offsetBulkCopy, offsetRead, offsetWrite, shortBulkCopy, shortRead, shortWrite, wordBulkCopy, wordRead, wordTryCompareAndSwap, wordWrite |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
nursery
private final CopyLocal nursery
GenRCMutator
public GenRCMutator()
alloc
public Address alloc(int bytes,
int align,
int offset,
int allocator,
int site)
- Allocate memory for an object.
- Overrides:
alloc
in class RCBaseMutator
- Parameters:
bytes
- The number of bytes required for the object.align
- Required alignment for the object.offset
- Offset associated with the alignment.allocator
- The allocator associated with this request.site
- Allocation site
- Returns:
- The low address of the allocated chunk.
postAlloc
public void postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
- Description copied from class:
MutatorContext
- Perform post-allocation actions. For many allocators none are
required.
- Overrides:
postAlloc
in class RCBaseMutator
- Parameters:
ref
- The newly allocated objecttypeRef
- the type reference for the instance being createdbytes
- The size of the space to be allocated (in bytes)allocator
- The allocator number to be used for this allocation
getAllocatorFromSpace
public Allocator getAllocatorFromSpace(Space space)
- Description copied from class:
MutatorContext
- Return the allocator instance associated with a space
space
, for this plan instance.
- Overrides:
getAllocatorFromSpace
in class RCBaseMutator
- Parameters:
space
- The space for which the allocator instance is desired.
- Returns:
- The allocator instance associated with this plan instance
which is allocating into
space
, or null
if no appropriate allocator can be established.
collectionPhase
public final void collectionPhase(short phaseId,
boolean primary)
- Perform a per-mutator collection phase. This is executed by
one collector thread on behalf of a mutator thread.
- Overrides:
collectionPhase
in class RCBaseMutator
- Parameters:
phaseId
- The unique phase identifierprimary
- Should this thread be used to execute any single-threaded
local operations?