org.mmtk.plan.immix
Class ImmixConstraints

java.lang.Object
  extended by org.mmtk.plan.PlanConstraints
      extended by org.mmtk.plan.SimpleConstraints
          extended by org.mmtk.plan.StopTheWorldConstraints
              extended by org.mmtk.plan.immix.ImmixConstraints
Direct Known Subclasses:
StickyImmixConstraints

public class ImmixConstraints
extends StopTheWorldConstraints

This class and its subclasses communicate to the host VM/Runtime any features of the selected plan that it needs to know. This is separate from the main Plan/PlanLocal class in order to bypass any issues with ordering of static initialization.


Constructor Summary
ImmixConstraints()
           
 
Method Summary
 int gcHeaderBits()
           
 int gcHeaderWords()
           
 boolean movesObjects()
           
 int numSpecializedScans()
           
 boolean requiresLOS()
           
 
Methods inherited from class org.mmtk.plan.PlanConstraints
generateGCTrace, generational, logSetBitMask, needsConcurrentWorkers, needsForwardAfterLiveness, needsLinearScan, needsLogBitInHeader, needsReadBarrier, needsReferenceTypeReadBarrier, needsStaticReadBarrier, needsStaticWriteBarrier, needsWriteBarrier, noParallelGC, unloggedBit, withGCspy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImmixConstraints

public ImmixConstraints()
Method Detail

gcHeaderBits

public int gcHeaderBits()
Specified by:
gcHeaderBits in class PlanConstraints
Returns:
The number of header bits that are required.

gcHeaderWords

public int gcHeaderWords()
Specified by:
gcHeaderWords in class PlanConstraints
Returns:
The number of header words that are required.

movesObjects

public boolean movesObjects()
Overrides:
movesObjects in class PlanConstraints
Returns:
True if this plan moves objects.

numSpecializedScans

public int numSpecializedScans()
Overrides:
numSpecializedScans in class PlanConstraints
Returns:
The specialized scan methods required

requiresLOS

public boolean requiresLOS()
Overrides:
requiresLOS in class PlanConstraints
Returns:
true because we cannot accommodate large objects in default allocator