org.jikesrvm.compilers.opt
Class ClassLoaderProxy

java.lang.Object
  extended by org.jikesrvm.compilers.opt.ClassLoaderProxy
All Implemented Interfaces:
OptConstants, Constants, HeapLayoutConstants, ThinLockConstants, TIBLayoutConstants, SizeConstants

public final class ClassLoaderProxy
extends Object
implements Constants, OptConstants


Field Summary
 
Fields inherited from interface org.jikesrvm.Constants
NOT_REACHED, REFLECTION_FPRS_BITS, REFLECTION_FPRS_MASK, REFLECTION_GPRS_BITS, REFLECTION_GPRS_MASK
 
Fields inherited from interface org.jikesrvm.objectmodel.ThinLockConstants
TL_DEDICATED_U16_OFFSET, TL_DEDICATED_U16_SHIFT, TL_LOCK_COUNT_MASK, TL_LOCK_COUNT_SHIFT, TL_LOCK_COUNT_UNIT, TL_LOCK_ID_MASK, TL_LOCK_ID_SHIFT, TL_NUM_BITS_RC, TL_NUM_BITS_STAT, TL_NUM_BITS_TID, TL_STAT_BIASABLE, TL_STAT_FAT, TL_STAT_MASK, TL_STAT_SHIFT, TL_STAT_THIN, TL_THREAD_ID_MASK, TL_THREAD_ID_SHIFT, TL_UNLOCK_MASK
 
Fields inherited from interface org.jikesrvm.SizeConstants
BITS_IN_ADDRESS, BITS_IN_BOOLEAN, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_DOUBLE, BITS_IN_EXTENT, BITS_IN_FLOAT, BITS_IN_INT, BITS_IN_LONG, BITS_IN_OFFSET, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BOOLEAN, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_DOUBLE, BYTES_IN_EXTENT, BYTES_IN_FLOAT, BYTES_IN_INT, BYTES_IN_LONG, BYTES_IN_OFFSET, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BOOLEAN, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_DOUBLE, LOG_BITS_IN_EXTENT, LOG_BITS_IN_FLOAT, LOG_BITS_IN_INT, LOG_BITS_IN_LONG, LOG_BITS_IN_OFFSET, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_BOOLEAN, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_DOUBLE, LOG_BYTES_IN_EXTENT, LOG_BYTES_IN_FLOAT, LOG_BYTES_IN_INT, LOG_BYTES_IN_LONG, LOG_BYTES_IN_OFFSET, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD
 
Fields inherited from interface org.jikesrvm.objectmodel.TIBLayoutConstants
IMT_METHOD_SLOTS, NEEDS_DYNAMIC_LINK, TIB_ARRAY_ELEMENT_TIB_INDEX, TIB_DOES_IMPLEMENT_INDEX, TIB_FIRST_SPECIALIZED_METHOD_INDEX, TIB_FIRST_VIRTUAL_METHOD_INDEX, TIB_INTERFACE_DISPATCH_TABLE_INDEX, TIB_SUPERCLASS_IDS_INDEX, TIB_TYPE_INDEX
 
Fields inherited from interface org.jikesrvm.HeapLayoutConstants
BAD_MAP_COMPRESSION, BOOT_IMAGE_CODE_END, BOOT_IMAGE_CODE_SIZE, BOOT_IMAGE_CODE_START, BOOT_IMAGE_DATA_END, BOOT_IMAGE_DATA_SIZE, BOOT_IMAGE_DATA_START, BOOT_IMAGE_END, BOOT_IMAGE_RMAP_END, BOOT_IMAGE_RMAP_START, MAX_BOOT_IMAGE_RMAP_SIZE, MAXIMUM_MAPPABLE
 
Fields inherited from interface org.jikesrvm.compilers.opt.driver.OptConstants
EPILOGUE_BCI, EPILOGUE_BLOCK_BCI, EXTANT_ANALYSIS_BCI, INSTRUMENTATION_BCI, MAYBE, METHOD_COUNTER_BCI, NO, OSR_PROLOGUE, PROLOGUE_BCI, PROLOGUE_BLOCK_BCI, RECTIFY_BCI, RUNTIME_SERVICES_BCI, SSA_SYNTH_BCI, SYNCHRONIZED_MONITORENTER_BCI, SYNCHRONIZED_MONITOREXIT_BCI, SYNTH_CATCH_BCI, SYNTH_LOOP_VERSIONING_BCI, UNKNOWN_BCI, YES
 
Constructor Summary
ClassLoaderProxy()
           
 
Method Summary
static TypeReference findCommonSuperclass(TypeReference t1, TypeReference t2)
          Returns a common superclass of the two types.
static ClassConstantOperand getClassFromConstantPool(RVMClass klass, int index)
          Get the Class stored at a particular index of a class's constant pool.
static DoubleConstantOperand getDoubleFromConstantPool(RVMClass klass, int index)
          Get the double stored at a particular index of a class's constant pool.
static FloatConstantOperand getFloatFromConstantPool(RVMClass klass, int index)
          Get the float stored at a particular index of a class's constant pool.
static IntConstantOperand getIntFromConstantPool(RVMClass klass, int index)
          Get the integer stored at a particular index of a class's constant pool.
static LongConstantOperand getLongFromConstantPool(RVMClass klass, int index)
          Get the long stored at a particular index of a class's constant pool.
static StringConstantOperand getStringFromConstantPool(RVMClass klass, int index)
          Get the String stored at a particular index of a class's constant pool.
static byte includesType(TypeReference parentType, TypeReference childType)
          Return Constants.YES if the parent type is defintely a supertype of the child type.
static RVMMethod lookupMethod(RVMClass cls, MethodReference ref)
          Find the method of the given class that matches the given descriptor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassLoaderProxy

public ClassLoaderProxy()
Method Detail

findCommonSuperclass

public static TypeReference findCommonSuperclass(TypeReference t1,
                                                 TypeReference t2)
Returns a common superclass of the two types. NOTE: If both types are references, but are not both loaded, then this may be a conservative approximation (java.lang.Object).

Parameters:
t1 - first type
t2 - second type
Returns:
a common superclass or null if there's none

includesType

public static byte includesType(TypeReference parentType,
                                TypeReference childType)
Return Constants.YES if the parent type is defintely a supertype of the child type.

Return Constants.NO if the parent type is definitely not a supertype of the child type.

Return Constants.MAYBE if the question cannot be currently answered (for example if one/both of the classes is not resolved)

Takes into account the special 'null-type', which corresponds to a null constant.

Parameters:
parentType - parent type
childType - child type
Returns:
Constants.YES, Constants.NO, or Constants.MAYBE

lookupMethod

public static RVMMethod lookupMethod(RVMClass cls,
                                     MethodReference ref)
Find the method of the given class that matches the given descriptor.


getIntFromConstantPool

public static IntConstantOperand getIntFromConstantPool(RVMClass klass,
                                                        int index)
Get the integer stored at a particular index of a class's constant pool.


getDoubleFromConstantPool

public static DoubleConstantOperand getDoubleFromConstantPool(RVMClass klass,
                                                              int index)
Get the double stored at a particular index of a class's constant pool.


getFloatFromConstantPool

public static FloatConstantOperand getFloatFromConstantPool(RVMClass klass,
                                                            int index)
Get the float stored at a particular index of a class's constant pool.


getLongFromConstantPool

public static LongConstantOperand getLongFromConstantPool(RVMClass klass,
                                                          int index)
Get the long stored at a particular index of a class's constant pool.


getStringFromConstantPool

public static StringConstantOperand getStringFromConstantPool(RVMClass klass,
                                                              int index)
Get the String stored at a particular index of a class's constant pool.


getClassFromConstantPool

public static ClassConstantOperand getClassFromConstantPool(RVMClass klass,
                                                            int index)
Get the Class stored at a particular index of a class's constant pool.