Package harpoon.Backend.Runtime1

Runtime1 is the first implementation of a FLEX backend runtime system.

See:
          Description

Interface Summary
AllocationStrategyFactory AllocationStrategyFactory
 

Class Summary
AllocationStrategy An AllocationStrategy is a particular implementation of a memory allocation routine.
AppelAllocationStrategy A simple-minded version of Appel's fast-allocation strategy
BDWAllocationStrategy BDWAllocationStrategy calls the appropriate C functions in the Boehm-Demers-Weiser conservative garbage collector library to do the allocation.
Data Data is an abstract superclass with handy useful methods for the harpoon.IR.Tree.Data subclasses in Runtime1.
DataClaz DataClaz lays out the claz tables, including the interface and class method dispatch tables.
DataConfigChecker DataConfigChecker outputs some (never used) references which will be unresolved (resulting in linker errors at build-time) unless the runtime configuration matches the flex configuration.
DataGC DataGC outputs the tables needed by the garbage collector.
DataInitializers DataInitializers outputs a table listing the static initializers needed for the program, in the proper dependency order.
DataInterfaceList DataInterfaceList lays out the expanded list of interfaces.
DataJavaMain DataJavaMain outputs a labeled string pointer ("FNI_javamain") which tells the runtime with which method to begin execution of this java program.
DataReflection1 DataReflection1 creates tables which the JNI interface will use.
DataReflection2 DataReflection2 generates class information tables for each class, with lots of juicy information needed by JNI and java language reflection.
DataReflectionMemberList DataReflectionMemberList creates tables which the JNI interface will use.
DataStaticFields DataStaticFields lays out the static fields of a class.
DataStrings DataStrings lays out string constant objects.
HeapStatsAllocationStrategy HeapStatsAllocationStrategy calls the appropriate C functions in the --with-live-heap-statistics runtime code to collect statistics for objects and arrays allocated.
MallocAllocationStrategy MallocAllocationStrategy calls a C function with the same prototype as malloc() to do the allocation.
NiftyAllocationStrategy NiftyAllocationStrategy implements stack- and thread-clustered-allocation strategies.
NullAllocationStrategy NullAllocationStrategy just returns a null pointer when asked for memory.
ObjectBuilder ObjectBuilder is an implementation of harpoon.Backend.Generic.Runtime.ObjectBuilder for the Runtime1 runtime.
ObjectBuilder.RootOracle A RootOracle allows a transformation to add fields to java.lang.Object (or any other class, really) and provide the initial values for that field in the various runtime constant objects without having to directly extend every ObjectInfo used in this Generic.Runtime implementation.
Runtime Runtime1.Runtime is a no-frills implementation of the runtime abstract class.
Runtime.ExtraClazInfo provides a means for a subclass to add extra fields to DataClaz.
RuntimeInformation RuntimeInformation
SPAllocationStrategy SPAllocationStrategy implements a "semi-precise" allocation strategy by providing the BDW collector with more precise information about pointer locations.
StubCode StubCode is used to generate non-canonical tree code stubs for native methods.
TreeBuilder Runtime1.TreeBuilder is an implementation of Generic.Runtime.TreeBuilder which creates accessor expressions for the Runtime1 runtime.
 

Package harpoon.Backend.Runtime1 Description

Runtime1 is the first implementation of a FLEX backend runtime system. It uses static layout of class and interface methods for fast invocation, and a 'class display' structure for fast instanceof tests. It includes information to support JNI native methods. It supports a variety of different memory allocation strategies.

Author:
C. Scott Ananian <cananian@alumni.princeton.edu>