org.mmtk.plan.refcount.generational
Class GenRCCollector
java.lang.Object
org.mmtk.plan.CollectorContext
org.mmtk.plan.ParallelCollector
org.mmtk.plan.SimpleCollector
org.mmtk.plan.StopTheWorldCollector
org.mmtk.plan.refcount.RCBaseCollector
org.mmtk.plan.refcount.generational.GenRCCollector
- All Implemented Interfaces:
- Constants
public class GenRCCollector
- extends RCBaseCollector
This class implements the collector 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 |
Method Summary |
Address |
allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space) |
void |
collectionPhase(short phaseId,
boolean primary)
Perform a (local, i.e.per-collector) collection phase. |
protected TransitiveClosure |
getModifiedProcessor()
Get the modified processor to use. |
protected TraceLocal |
getRootTrace()
Get the root trace to use. |
void |
postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform any post-copy actions. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
rootTrace
private final GenRCFindRootSetTraceLocal rootTrace
modProcessor
private final GenRCModifiedProcessor modProcessor
rc
private final ExplicitFreeListLocal rc
GenRCCollector
public GenRCCollector()
collectionPhase
public final void collectionPhase(short phaseId,
boolean primary)
- Perform a (local, i.e.per-collector) collection phase.
- Overrides:
collectionPhase
in class RCBaseCollector
- Parameters:
phaseId
- The unique phase identifierprimary
- Should this thread be used to execute any single-threaded
local operations?
allocCopy
public final Address allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
- Allocate space for copying an object (this method does not
copy the object, it only allocates space)
- Overrides:
allocCopy
in class CollectorContext
- Parameters:
original
- The object that is being copied.bytes
- The size of the space to be allocated (in bytes)align
- Required alignment for the copyoffset
- Offset associated with the alignment.allocator
- The allocator associated with this request
- Returns:
- The address of the first byte of the allocated region
postCopy
public final void postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
- Perform any post-copy actions.
In this case nothing is required.
- Overrides:
postCopy
in class CollectorContext
- Parameters:
object
- The newly allocated object.typeRef
- the type reference for the instance being created.bytes
- The size of the space to be allocated (in bytes).allocator
- The allocator statically assigned to this allocation.
getModifiedProcessor
protected final TransitiveClosure getModifiedProcessor()
- Description copied from class:
RCBaseCollector
- Get the modified processor to use.
- Specified by:
getModifiedProcessor
in class RCBaseCollector
getRootTrace
protected final TraceLocal getRootTrace()
- Description copied from class:
RCBaseCollector
- Get the root trace to use.
- Specified by:
getRootTrace
in class RCBaseCollector