Serialized Form


Package harpoon.Analysis

Class harpoon.Analysis.AbstractClassFixupRelinker extends Relinker implements Serializable

Serialized Fields

deferred

WorkSet<E> deferred
Set of classes waiting to be fixed up.


depth

int depth
Current level of recursion.

Class harpoon.Analysis.AllocationInformationMap extends Object implements Serializable

Serialized Fields

map

Map<K,V> map

Class harpoon.Analysis.AllocationInformationMap.AllocationPropertiesImpl extends Object implements Serializable

Serialized Fields

hasInteriorPointers

boolean hasInteriorPointers

canBeStackAllocated

boolean canBeStackAllocated

canBeThreadAllocated

boolean canBeThreadAllocated

makeHeap

boolean makeHeap

noSynchronization

boolean noSynchronization

allocationHeap

Temp allocationHeap

actualClass

HClass actualClass

setDynamicWBFlag

boolean setDynamicWBFlag

labelOfPtrToMemoryChunk

Label labelOfPtrToMemoryChunk

uniqueID

int uniqueID

Class harpoon.Analysis.BasicBlock extends Object implements Serializable

Serialized Fields

first

HCodeElement first

last

HCodeElement last

pred_bb

Set<E> pred_bb

succ_bb

Set<E> succ_bb

num

int num

size

int size

factory

BasicBlock.Factory<HCE extends HCodeElement> factory

Class harpoon.Analysis.BasicBlock.Factory extends Object implements Serializable

Serialized Fields

hcode

HCode<HCE extends HCodeElement> hcode

hceToBB

Map<K,V> hceToBB

grapher

CFGrapher<HCE extends HCodeElement> grapher

root

BasicBlock<HCE extends HCodeElement> root

leaves

Set<E> leaves

blocks

Set<E> blocks

BBnum

int BBnum

Class harpoon.Analysis.DefaultAllocationInformation extends Object implements Serializable

Serialization Methods

readResolve

private Object readResolve()
                    throws ObjectStreamException
Throws:
ObjectStreamException

Class harpoon.Analysis.DefaultAllocationInformationMap extends AllocationInformationMap<Quad> implements Serializable


Package harpoon.Analysis.Companions

Class harpoon.Analysis.Companions.StaticValue extends Default.PairList<Temp,HCE extends HCodeElement> implements Serializable


Package harpoon.Analysis.Counters

Class harpoon.Analysis.Counters.RuntimeMethodCloner extends MethodMutator<Quad> implements Serializable

Serialized Fields

old2new

Map<K,V> old2new

badboys

Set<E> badboys

linker

Linker linker

needsNullCheck

Set<E> needsNullCheck

Package harpoon.Analysis.DynamicSyncRemoval

Class harpoon.Analysis.DynamicSyncRemoval.SyncRemover extends MethodMutator<Quad> implements Serializable

Serialized Fields

checkMethod

HMethod checkMethod

Package harpoon.Analysis.EnvBuilder

Class harpoon.Analysis.EnvBuilder.EnvCode extends QuadSSI implements Serializable


Package harpoon.Analysis.EventDriven

Class harpoon.Analysis.EventDriven.ContCode extends QuadRSSx implements Serializable

Class harpoon.Analysis.EventDriven.ContCodeNoSSA extends QuadNoSSA implements Serializable

Class harpoon.Analysis.EventDriven.ContCodeSSI extends QuadSSI implements Serializable

Class harpoon.Analysis.EventDriven.EventDrivenCode extends QuadSSI implements Serializable


Package harpoon.Analysis.GraphColoring

Class harpoon.Analysis.GraphColoring.ColorableGraph.AlreadyColoredException extends IllegalArgumentException implements Serializable

Serialized Fields

node

Object node
The node that was targetted for coloring.

Class harpoon.Analysis.GraphColoring.ColorableGraph.AlreadyHiddenException extends IllegalArgumentException implements Serializable

Class harpoon.Analysis.GraphColoring.ColorableGraph.IllegalColor extends Throwable implements Serializable

Serialized Fields

color

Color color
Color intended for assignment.


node

Object node
Node intended to be assigned to color.

Class harpoon.Analysis.GraphColoring.EdgeNotPresentException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.IllegalEdgeException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.NodeAlreadyColoredException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.NodeNotColoredException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.NodeNotPresentInGraphException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.NodeNotRemovedException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.NoFactorySetException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.ObjectNotModifiableException extends RuntimeException implements Serializable

Class harpoon.Analysis.GraphColoring.UnableToColorGraph extends Throwable implements Serializable

Serialized Fields

rmvSuggsLarge

Collection<E> rmvSuggsLarge

rmvSuggs

Collection<E> rmvSuggs

Class harpoon.Analysis.GraphColoring.WrongNodeTypeException extends RuntimeException implements Serializable


Package harpoon.Analysis.Instr

Class harpoon.Analysis.Instr.LocalCffRegAlloc.PreassignTemp extends Temp implements Serializable

Serialized Fields

reg

Temp reg

Package harpoon.Analysis.LowQuad.Loop

Class harpoon.Analysis.LowQuad.Loop.MyLowQuadNoSSA extends LowQuadNoSSA implements Serializable

Serialized Fields

dT

HashMap<K,V> dT

tT

HashMap<K,V> tT

parentDerivation

Derivation<HCE extends HCodeElement> parentDerivation

quadmap

Map<K,V> quadmap

tempMap

TempMap tempMap

Class harpoon.Analysis.LowQuad.Loop.MyLowQuadSSI extends LowQuadSSI implements Serializable

Serialized Fields

dT

HashMap<K,V> dT

tT

HashMap<K,V> tT

parentDerivation

Derivation<HCE extends HCodeElement> parentDerivation

quadmap

Map<K,V> quadmap

tempMap

TempMap tempMap

quadmapchanges

Map<K,V> quadmapchanges

Package harpoon.Analysis.Maps

Class harpoon.Analysis.Maps.ExactTypeMap.ExactType extends AbstractList implements Serializable

Serialized Fields

type

HClass type

isExact

boolean isExact

Class harpoon.Analysis.Maps.TypeMap.TypeNotKnownException extends RuntimeException implements Serializable


Package harpoon.Analysis.MemOpt

Class harpoon.Analysis.MemOpt.PreallocAllocationStrategy extends BDWAllocationStrategy implements Serializable

Class harpoon.Analysis.MemOpt.PreallocOpt.SafeCachingCodeFactory extends CachingCodeFactory implements Serializable


Package harpoon.Analysis.MetaMethods

Class harpoon.Analysis.MetaMethods.FakeMetaCallGraph extends MetaCallGraphAbstr implements Serializable

Class harpoon.Analysis.MetaMethods.GenType extends Object implements Serializable

Serialized Fields

hclass

HClass hclass

kind

int kind

Class harpoon.Analysis.MetaMethods.MetaAllCallers extends Object implements Serializable

Serialized Fields

callers_cmpct

Map<K,V> callers_cmpct

empty_array

MetaMethod[] empty_array

Class harpoon.Analysis.MetaMethods.MetaCallGraph extends jpaul.Graphs.DiGraph<MetaMethod> implements Serializable

Serialized Fields

navigator

jpaul.Graphs.BiDiNavigator<Vertex> navigator

Class harpoon.Analysis.MetaMethods.MetaCallGraphAbstr extends MetaCallGraph implements Serializable

Serialized Fields

callees1_cmpct

Map<K,V> callees1_cmpct

callees2_cmpct

Map<K,V> callees2_cmpct

empty_array

MetaMethod[] empty_array

all_meta_methods

Set<E> all_meta_methods

split

jpaul.DataStructs.Relation<K,V> split

run_mms

Set<E> run_mms

Class harpoon.Analysis.MetaMethods.MetaCallGraphImpl extends MetaCallGraphAbstr implements Serializable

Serialized Fields

no_coll_in_coll

boolean no_coll_in_coll

hcf

CachingCodeFactory hcf

ch

ClassHierarchy ch

linker

Linker linker

instantiated_classes

Set<E> instantiated_classes

ssx_form

boolean ssx_form

jl_RuntimeException

HClass jl_RuntimeException

jl_Error

HClass jl_Error

jl_Thread

HClass jl_Thread

jl_Runnable

HClass jl_Runnable

jl_Object

HClass jl_Object

hm_HashtablePut

HMethod hm_HashtablePut

callees1

jpaul.DataStructs.Relation<K,V> callees1

callees2

Map<K,V> callees2

WMM

PAWorkList WMM

analyzed_mm

Set<E> analyzed_mm

mm_work

MetaMethod mm_work

mm_count

int mm_count

calls

Collection<E> calls

param_types

GenType[] param_types

nb_meta_methods

int nb_meta_methods

put_in_colls

Set<E> put_in_colls

keys_put_in_maps

Set<E> keys_put_in_maps

values_put_in_maps

Set<E> values_put_in_maps

jl_Collection

HClass jl_Collection

jl_Map

HClass jl_Map

ju_HashSet

HClass ju_HashSet

coll_upcalls

Set<E> coll_upcalls

map_upcalls

Set<E> map_upcalls

call_time

long call_time

nb_calls

int nb_calls

nb_big_calls

int nb_big_calls

implementers

Set<E> implementers

kids

HClass[] kids

nb_kids

int nb_kids

cls

HClass[] cls

impl

HClass[] impl

nb_cls

int nb_cls

mh2md

Map<K,V> mh2md

qvis_dd

harpoon.Analysis.MetaMethods.MetaCallGraphImpl.QuadVisitorDD qvis_dd

ets2et

Map<K,V> ets2et

ets_test

harpoon.Analysis.MetaMethods.MetaCallGraphImpl.ExactTempS ets_test

qvis_ti

harpoon.Analysis.MetaMethods.MetaCallGraphImpl.QuadVisitorTI qvis_ti

Class harpoon.Analysis.MetaMethods.MetaMethod extends Object implements Serializable

Serialized Fields

hm

HMethod hm

types

GenType[] types

Package harpoon.Analysis.PA2.Mutation

Class harpoon.Analysis.PA2.Mutation.NoAnalysisResultException extends Exception implements Serializable


Package harpoon.Analysis.PointerAnalysis

Class harpoon.Analysis.PointerAnalysis.AbstrRelation extends Object implements Serializable

Serialized Fields

hashCode

int hashCode

Class harpoon.Analysis.PointerAnalysis.AbstrRelationMapBased extends AbstrRelation implements Serializable

Serialized Fields

map

Map<K,V> map

Class harpoon.Analysis.PointerAnalysis.ActionRepository extends Object implements Serializable

Serialized Fields

alpha_ld

HashSet<E> alpha_ld

pi_ld

Relation pi_ld

alpha_sync

Relation alpha_sync

pi_sync

Hashtable<K,V> pi_sync

Class harpoon.Analysis.PointerAnalysis.Debug extends Object implements Serializable

Class harpoon.Analysis.PointerAnalysis.EdgeOrdering extends Object implements Serializable

Serialized Fields

after

Relation after

Class harpoon.Analysis.PointerAnalysis.InstrumentSyncOps extends Object implements Serializable

Serialized Fields

pa

PointerAnalysis pa

newmap

harpoon.Analysis.PointerAnalysis.InstrumentSyncOps.QuadMap newmap

monitorentermap

harpoon.Analysis.PointerAnalysis.InstrumentSyncOps.QuadMap monitorentermap

monitorexitmap

harpoon.Analysis.PointerAnalysis.InstrumentSyncOps.QuadMap monitorexitmap

locks

HashMap<K,V>[] locks

ocs

HashMap<K,V>[] ocs

Class harpoon.Analysis.PointerAnalysis.InterProcPA extends Object implements Serializable

Class harpoon.Analysis.PointerAnalysis.InterThreadPA extends Object implements Serializable

Class harpoon.Analysis.PointerAnalysis.LightMap extends Object implements Serializable

Serialized Fields

size

int size

root

harpoon.Analysis.PointerAnalysis.LightMap.BinTreeNode<K,V> root

cachedHashCode

int cachedHashCode

binTreeNav

jpaul.Graphs.BinTreeNavigator<T> binTreeNav

Class harpoon.Analysis.PointerAnalysis.LightPAEdgeSet extends AbstrPAEdgeSet implements Serializable

Serialized Fields

var_edges

Relation var_edges

node_edges

Map<K,V> node_edges

Class harpoon.Analysis.PointerAnalysis.LightRelation extends AbstrRelationMapBased implements Serializable

Class harpoon.Analysis.PointerAnalysis.ListCell extends Object implements Serializable

Serialized Fields

info

Object info

next

ListCell next

Class harpoon.Analysis.PointerAnalysis.MAInfo extends Object implements Serializable

Serialized Fields

DEBUG_IC

boolean DEBUG_IC

pa

PointerAnalysis pa

hcf

HCodeFactory hcf

linker

Linker linker

mms

Set<E> mms

node_rep

NodeRepository node_rep

mcg

MetaCallGraph mcg

mac

MetaAllCallers mac

opt

MAInfo.MAInfoOptions opt

caching_scc_lbb_factory

CachingSCCLBBFactory caching_scc_lbb_factory

good_holes

Set<E> good_holes

java_lang_Thread

HClass java_lang_Thread

java_lang_Throwable

HClass java_lang_Throwable

aps

Map<K,V> aps

ih

Map<K,V> ih

hm2rang

Map<K,V> hm2rang

quad2scc

Map<K,V> quad2scc

current_chain_cs

LinkedList<E> current_chain_cs

current_chain_callees

LinkedList<E> current_chain_callees

chains

LinkedList<E> chains

Class harpoon.Analysis.PointerAnalysis.MAInfo.MAInfoOptions extends Object implements Serializable

Serialized Fields

IGNORE_INIT_CODE

boolean IGNORE_INIT_CODE

DO_STACK_ALLOCATION

boolean DO_STACK_ALLOCATION
Controls the generation of stack allocation hints. Default false.


STACK_ALLOCATION_POLICY

int STACK_ALLOCATION_POLICY
Forbids stack allocation in a loop. Should be one of the STACK_ALLOCATE_* constants. Default is STACK_ALLOCATE_NOT_IN_LOOPS.


DO_THREAD_ALLOCATION

boolean DO_THREAD_ALLOCATION
Controls the generation of thread local heap allocation hints. Default false.


DO_INLINING_FOR_SA

boolean DO_INLINING_FOR_SA
Enables the application of some method inlining to increase the effectiveness of the stack allocation. Only inlinings that increase the effectiveness of the stack allocation are done. Default false.


DO_INLINING_FOR_TA

boolean DO_INLINING_FOR_TA
Enables the application of some method inlining to increase the effectiveness of the thread local heap allocation. Default false.


DO_PREALLOCATION

boolean DO_PREALLOCATION
Enables the use of preallocation: if an object will be accessed only by a thread (ie it is created just to pass some parameters to a thread), it can be preallocated into the heap of that thread. For the moment, it is potentially dangerous so it is deactivated by default. Default false.


GEN_SYNC_FLAG

boolean GEN_SYNC_FLAG
Controls the detection of the objects for whom there are no concurrent synchronizations. This objects are marked with a special flag to reduce the cost of synchronization operations. Default false.


USE_INTER_THREAD

boolean USE_INTER_THREAD
Use the interthread analysis inside MAInfo. If this analysis is too buggy or time/memory expensive, you can disable it through this flag. NOTE: this will also disable some of the optimizations (eg the preallocation). Default false.


MAX_INLINING_LEVEL

int MAX_INLINING_LEVEL
The current implementation is able to inline call strings of length bigger than one. Default value is 2.


MAX_METHOD_SIZE

int MAX_METHOD_SIZE
The maximal size to which we can inflate the size of a method through inlining. Default is 1000 quads.


MAX_INLINABLE_METHOD_SIZE

int MAX_INLINABLE_METHOD_SIZE
The maximal size of a method that can be inlined. Default is 100 quads.

Class harpoon.Analysis.PointerAnalysis.MyAP extends Object implements Serializable

Serialized Fields

hip

boolean hip

sa

boolean sa

ta

boolean ta

uoh

boolean uoh

mh

boolean mh

ns

boolean ns

ah

Temp ah

actualClass

HClass actualClass

Class harpoon.Analysis.PointerAnalysis.NodeRepository extends Object implements Serializable

Serialized Fields

static_nodes

Hashtable<K,V> static_nodes

param_nodes

Hashtable<K,V> param_nodes

code_nodes

Hashtable<K,V> code_nodes

cf_nodes

Hashtable<K,V> cf_nodes

except_nodes

Hashtable<K,V> except_nodes

node2code

Hashtable<K,V> node2code

coalesced_native_excp

PANode coalesced_native_excp

coalesced_native_ret

PANode coalesced_native_ret

COALESCE_RESULTS_FROM_NATIVES

boolean COALESCE_RESULTS_FROM_NATIVES

coalesced_excp

PANode coalesced_excp

jl_Throwable

HClass jl_Throwable

jl_Object

HClass jl_Object

COALESCE_EXCEPTIONS

boolean COALESCE_EXCEPTIONS

Class harpoon.Analysis.PointerAnalysis.PAEdge extends Object implements Serializable

Serialized Fields

n1

PANode n1

f

String f

n2

PANode n2

Class harpoon.Analysis.PointerAnalysis.PAEscapeFunc extends Object implements Serializable

Serialized Fields

rel_n

Relation rel_n

rel_m

Relation rel_m

Class harpoon.Analysis.PointerAnalysis.PANode extends Object implements Serializable

Serialized Fields

type

int type
The type of the node


number

int number
Holds the unique ID


call_chain_depth

int call_chain_depth

cs_specs

LightMap<K,V> cs_specs

cs_parent

PANode cs_parent

call_site

CALL call_site

bottom

PANode bottom

ts_specs

LightMap<K,V> ts_specs

wtspec

PANode wtspec

ts_parent

PANode ts_parent

run_mmethod

MetaMethod run_mmethod

node_class

GenType[] node_class

bar_version

PANode bar_version

genuine_version

PANode genuine_version
null for the genuine nodes.

Class harpoon.Analysis.PointerAnalysis.ParIntGraph extends Object implements Serializable

Serialized Fields

G

PointsToGraph G
Points-to escape graph that summarizes the points-to and escape information for the current thread.


tau

PAThreadMap tau
The paralel thread map; it attaches to each thread node nT, an integer from the set {0,1,2} where 2 signifies the possibility that multiple instances of nT execute in parallel with the current thread.


ar

ActionRepository ar
Maintains the actions executed by the analysed code and the parallel action relation. alpha and pi from the original paper have been merged into this single field for efficiency reasons.


eo

EdgeOrdering eo
Maintains the (conservative) ordering relations between the inside and the outside edges. before(ei,eo) is true if the inside edge ei might be created before the ouside edge eo was read.


mutated

PersistentSet<T> mutated
Contains mutated fields.

Class harpoon.Analysis.PointerAnalysis.PASync extends Object implements Serializable

Serialized Fields

n

PANode n
The node on which the sync is performed on.


nt

PANode nt
The thread which performs the sync.


hce

HCodeElement hce
The instruction which performs the sync.


depth

int depth
The depth of the call-path specialization chain; if 0, the sync took place in the current method.


call_path

ListCell call_path
The call chain that specializes this action. Its size is equal to depth. To cope with the recursive methods, this is just the last part of the call-path, containing up to PointerAnalysis.MAX_SPEC_DEPTH elements: every chain shorter than that limit is exact, the rest are just approximations.


wtspec_run

MetaMethod wtspec_run
If this action is the thread specialization of another action, this is the run method of the thread which does this action.


hash

int hash
Cache for the hash code.

Class harpoon.Analysis.PointerAnalysis.PAThreadMap extends Object implements Serializable

Serialized Fields

hash

Hashtable<K,V> hash

Class harpoon.Analysis.PointerAnalysis.PAWorkList extends PAWorkSet implements Serializable

Serialized Fields

list

LinkedList<E> list

set

HashSet<E> set

Class harpoon.Analysis.PointerAnalysis.PAWorkSet extends Object implements Serializable

Class harpoon.Analysis.PointerAnalysis.PAWorkStack extends PAWorkSet implements Serializable

Serialized Fields

list

LinkedList<E> list

set

HashSet<E> set

Class harpoon.Analysis.PointerAnalysis.PointerAnalysis extends Object implements Serializable

Serialized Fields

mcg

MetaCallGraph mcg

mac

MetaAllCallers mac

scc_lbb_factory

CachingSCCLBBFactory scc_lbb_factory

linker

Linker linker

hash_proc_interact_int

Map<K,V> hash_proc_interact_int

hash_proc_interact_ext

Map<K,V> hash_proc_interact_ext

hash_proc_int

Map<K,V> hash_proc_int

hash_proc_ext

Map<K,V> hash_proc_ext

aamm

Set<E> aamm

cs_specs

Map<K,V> cs_specs

t_specs

Map<K,V> t_specs

W_inter_proc

PAWorkList W_inter_proc

W_intra_proc

PAWorkList W_intra_proc

mm_navigator

jpaul.Graphs.BiDiNavigator<Vertex> mm_navigator

current_intra_mmethod

MetaMethod current_intra_mmethod

initial_pig

ParIntGraph initial_pig

lbb2pp

Map<K,V> lbb2pp

lbb2passes

Map<K,V> lbb2passes

lbbpig

ParIntGraph lbbpig

call_pp

harpoon.Analysis.PointerAnalysis.ParIntGraphPair call_pp

pa_visitor

harpoon.Analysis.PointerAnalysis.PointerAnalysis.PAVisitor pa_visitor

mm2lost

Map<K,V> mm2lost

Class harpoon.Analysis.PointerAnalysis.PointsToGraph extends Object implements Serializable

Serialized Fields

O

PAEdgeSet O
The set of the outside edges.


I

PAEdgeSet I
The set of the inside edges.


e

PAEscapeFunc e
The escape function.


r

Set<E> r
The set of normally returned objects


excp

Set<E> excp
The set of objects which are returned as exception


reachable_from_r

Set<E> reachable_from_r

reachable_from_excp

Set<E> reachable_from_excp

Class harpoon.Analysis.PointerAnalysis.RelationImpl extends Object implements Serializable

Serialized Fields

hash

Hashtable<K,V> hash
The top-level Hashtable.


Package harpoon.Analysis.PreciseGC

Class harpoon.Analysis.PreciseGC.AllocationHoisting extends MethodSplitter implements Serializable

Serialized Fields

parent

HCodeFactory parent

ch

ClassHierarchy ch

linker

Linker linker

iMap

Map<K,V> iMap

iMap2

Map<K,V> iMap2

mraf

MRAFactory mraf

Class harpoon.Analysis.PreciseGC.DynamicWBInserter extends MethodMutator implements Serializable

Serialized Fields

clearBitHM

HMethod clearBitHM

ignoreMap

Map<K,V> ignoreMap

dwba

DynamicWBInserter.DynamicWBAnalysis dwba

Class harpoon.Analysis.PreciseGC.DynamicWBQuadPass extends MethodMutator implements Serializable

Serialized Fields

clearBitHM

HMethod clearBitHM

ignoreMap

Map<K,V> ignoreMap

Class harpoon.Analysis.PreciseGC.RCTransformer extends MethodSplitter implements Serializable

Serialized Fields

recursiveConstructors

Set<E> recursiveConstructors

Class harpoon.Analysis.PreciseGC.WriteBarrierInserter extends MethodMutator implements Serializable

Serialized Fields

JLRF

HClass JLRF

arrayWB

HMethod arrayWB

fieldWB

HMethod fieldWB

wba

WriteBarrierInserter.WriteBarrierAnalysis wba

Class harpoon.Analysis.PreciseGC.WriteBarrierPrePass extends MethodMutator implements Serializable

Serialized Fields

dummyHM

HMethod dummyHM

JLT

HClass JLT

Class harpoon.Analysis.PreciseGC.WriteBarrierQuadPass extends MethodMutator implements Serializable

Serialized Fields

ch

ClassHierarchy ch

optimize

boolean optimize

mraf

MRAFactory mraf

arraySC

HMethod arraySC

fieldSC

HMethod fieldSC

JLT

HClass JLT

JLRF

HClass JLRF

wbs

WriteBarrierStats wbs

Package harpoon.Analysis.Quads

Class harpoon.Analysis.Quads.ArrayInitRemover extends MethodMutator implements Serializable

Class harpoon.Analysis.Quads.ArrayUnroller extends MethodMutator<Quad> implements Serializable

Class harpoon.Analysis.Quads.CoalescingToNoSSA extends MethodMutator implements Serializable

Class harpoon.Analysis.Quads.ComponentOfReducer extends MethodMutator<Quad> implements Serializable

Serialized Fields

etm

ExactTypeMap<HCE extends HCodeElement> etm

Class harpoon.Analysis.Quads.DispatchTreeTransformation extends MethodMutator implements Serializable

Serialized Fields

ch

ClassHierarchy ch

Class harpoon.Analysis.Quads.InitializerTransform extends MethodSplitter implements Serializable

Serialized Fields

dependentMethods

Map<K,V> dependentMethods
Set of dependent native methods. We know the dependencies of these methods statically; this is a Map from HMethods to Sets of HInitializers. HMethods with no dependencies are "safe".


hcf

HCodeFactory hcf
Our version of the codefactory.


safetyCache

Map<K,V> safetyCache
Cache for safety tests.

Class harpoon.Analysis.Quads.MemoryOptimization extends MethodMutator<Quad> implements Serializable

Serialized Fields

cg

CallGraph cg

fso

FieldSyncOracle fso

Class harpoon.Analysis.Quads.MethodTraceFactory extends MethodMutator<Quad> implements Serializable

Class harpoon.Analysis.Quads.NewMover extends MethodMutator implements Serializable

Class harpoon.Analysis.Quads.Nonvirtualize extends MethodMutator<Quad> implements Serializable

Serialized Fields

fm

FinalMap fm
The FinalMap we will consult for our devirtualization.


callable

Set<E> callable
An optional set of callable methods to limit our devirtualization.

Class harpoon.Analysis.Quads.QuadClassHierarchy extends ClassHierarchy implements Serializable

Serialized Fields

children

Map<K,V> children

methods

Set<E> methods

_unmod_methods

Set<E> _unmod_methods

instedClasses

Set<E> instedClasses

_unmod_insted

Set<E> _unmod_insted

HMstrIntern

HMethod HMstrIntern

HMthrStart

HMethod HMthrStart

HMthrRun

HMethod HMthrRun

Class harpoon.Analysis.Quads.QuadCounter extends Object implements Serializable

Serialized Fields

numQuads

long numQuads

parent

HCodeFactory parent

Class harpoon.Analysis.Quads.SmallMethodInliner.IntMap extends HashMap implements Serializable

Class harpoon.Analysis.Quads.TypeSwitchRemover extends MethodMutator<Quad> implements Serializable

Class harpoon.Analysis.Quads.Virtualize extends MethodMutator<Quad> implements Serializable

Serialized Fields

callable

Set<E> callable
The set of callable methods we will use to guide our virtualization.


Package harpoon.Analysis.Realtime

Class harpoon.Analysis.Realtime.ClassReplacer extends MethodMutator implements Serializable

Serialized Fields

methodMap

HashMap<K,V> methodMap

fromClass

HClass fromClass

toClass

HClass toClass

ignorePackages

Set<E> ignorePackages

ignoreClasses

Set<E> ignoreClasses

codeName

String codeName

Class harpoon.Analysis.Realtime.QuantaChecker extends MethodMutator implements Serializable

Class harpoon.Analysis.Realtime.RealtimeAllocationStrategy extends MallocAllocationStrategy implements Serializable

Class harpoon.Analysis.Realtime.RealtimeRuntime extends Runtime implements Serializable


Package harpoon.Analysis.RoleInference

Class harpoon.Analysis.RoleInference.RoleInference extends MethodMutator implements Serializable

Serialized Fields

linker

Linker linker

Package harpoon.Analysis.SizeOpt

Class harpoon.Analysis.SizeOpt.FieldReducer extends MethodMutator<Quad> implements Serializable

Serialized Fields

bwa

BitWidthAnalysis bwa

linker

Linker linker

hcf

HCodeFactory hcf

Class harpoon.Analysis.SizeOpt.MostlyZeroFinder extends MethodMutator<Quad> implements Serializable

Serialized Fields

bfn

BitFieldNumbering bfn

pointersAreLong

boolean pointersAreLong

suffix

String suffix

dio

DefiniteInitOracle dio

Class harpoon.Analysis.SizeOpt.SizeCounters extends MethodMutator<Quad> implements Serializable

Serialized Fields

frame

Frame frame

tb

Runtime.TreeBuilder tb

bwa

BitWidthAnalysis bwa

Package harpoon.Analysis.Transactions

Class harpoon.Analysis.Transactions.AltArrayTransformer extends MethodMutator<Quad> implements Serializable

Serialized Fields

linker

Linker linker

which_impl

String which_impl

comp2impl

Map<K,V> comp2impl

Class harpoon.Analysis.Transactions.ArrayCopyImplementer extends CachingCodeFactory implements Serializable

Serialized Fields

HMimpac

HMethod HMimpac
Parent code factory.

Class harpoon.Analysis.Transactions.CloneImplementer extends Object implements Serializable

Serialized Fields

parent

HCodeFactory parent
Parent code factory.


cache

Map<K,V> cache
Representation cache.


declaredFieldMap

Map<K,V> declaredFieldMap

Class harpoon.Analysis.Transactions.SyncTransformer extends MethodSplitter implements Serializable

Serialized Fields

enabled

boolean enabled

removeTransactions

boolean removeTransactions

noFieldModification

boolean noFieldModification

noArrayModification

boolean noArrayModification

noNestedTransactions

boolean noNestedTransactions

useSmartFieldOracle

boolean useSmartFieldOracle

useSmartCheckOracle

boolean useSmartCheckOracle

useSmarterCheckOracle

boolean useSmarterCheckOracle

useUniqueRWCounters

boolean useUniqueRWCounters

useHardwareTrans

boolean useHardwareTrans

doMemoryTrace

boolean doMemoryTrace

keepOldLocks

boolean keepOldLocks

excludeCounters

boolean excludeCounters

fieldOracle

harpoon.Analysis.Transactions.FieldOracle fieldOracle

HCclass

HClass HCclass
Cache the java.lang.Class HClass.


HCfield

HClass HCfield
Cache the java.lang.reflect.Field HClass.


HCobj

HClass HCobj
Cache the java.lang.Object HClass.


HCvinfo

HClass HCvinfo
Cache the struct vinfo * HClass.


HCcommitrec

HClass HCcommitrec
Cache the CommitRecord HClass.


HMcommitrec_new

HMethod HMcommitrec_new

HMcommitrec_retry

HMethod HMcommitrec_retry

HMcommitrec_commit

HMethod HMcommitrec_commit

HFcommitrec_parent

HField HFcommitrec_parent

HCabortex

HClass HCabortex
Cache the AbortException HClass.


HFabortex_upto

HField HFabortex_upto

HMabortex_cons

HMethod HMabortex_cons

HCimplHelper

HClass HCimplHelper
Cache the ImplHelper HClass.


HMsetTrans

HMethod HMsetTrans

HFflagvalue

HField HFflagvalue
flag value


HFlastRTrans

HField HFlastRTrans
last *reading* transaction


HFlastWTrans

HField HFlastWTrans
last *writing* transaction


transRoots

Set<E> transRoots
additional method roots after transactions transformation


hcf

HCodeFactory hcf
Our version of the codefactory.


linker

Linker linker

pointersAreLong

boolean pointersAreLong

gen

harpoon.Analysis.Transactions.MethodGenerator gen

transFields

Set<E> transFields

tdf

TreeDataFilter tdf

Package harpoon.Analysis.Transformation

Class harpoon.Analysis.Transformation.MethodMutator extends Object implements Serializable

Serialized Fields

parent

HCodeFactory parent
This is the code factory which contains the representations of the original (unsplit) methods.


hcf

HCodeFactory hcf
This is the code factory which contains the representations of the new split methods.

Class harpoon.Analysis.Transformation.MethodSplitter extends Object implements Serializable

Serialized Fields

hcf

CachingCodeFactory hcf
This is the code factory which contains the representations of the new split methods.


ch

ClassHierarchy ch
This is a class hierarchy, needed to properly split virtual methods. (Virtual methods have to be also split in all subclasses, in order for dynamic dispatch to work correctly.)


fm

FinalMap fm
This is the FinalMap used in the implementation of isVirtual().


split2orig

Map<K,V> split2orig
Maps split methods to pairs.


versions

Map<K,V> versions
Maps pairs to created split methods.

Class harpoon.Analysis.Transformation.MethodSplitter.Token extends Object implements Serializable

Serialization Methods

readResolve

protected abstract Object readResolve()
This method must be overridden to ensure that Tokens are still singletons after deserialization. See the template in the class description above.

Serialized Fields

suffix

String suffix

Package harpoon.Analysis.Tree

Class harpoon.Analysis.Tree.ConstantPropagation extends MethodMutator implements Serializable


Package harpoon.Analysis.TypeInference

Class harpoon.Analysis.TypeInference.SetHClass extends HashSet implements Serializable


Package harpoon.Backend.Analysis

Class harpoon.Backend.Analysis.ClassFieldMap extends FieldMap implements Serializable

Serialized Fields

cache

Map<K,V> cache

Class harpoon.Backend.Analysis.ClassMethodMap extends MethodMap implements Serializable

Serialized Fields

cache

Map<K,V> cache

Class harpoon.Backend.Analysis.InterfaceMethodMap extends MethodMap implements Serializable

Serialized Fields

mtable

Hashtable<K,V> mtable

factory

harpoon.Backend.Analysis.InterfaceMethodMap.HmNodeFactory factory

Class harpoon.Backend.Analysis.PackedClassFieldMap extends FieldMap implements Serializable

Serialized Fields

fieldcache

Map<K,V> fieldcache
maps fields to already-computed offsets


freecache

Map<K,V> freecache
maps classes to 'free space' lists.

Class harpoon.Backend.Analysis.SortedClassFieldMap extends ClassFieldMap implements Serializable

Serialized Fields

cache

Map<K,V> cache

Package harpoon.Backend.Generic

Class harpoon.Backend.Generic.Frame extends Object implements Serializable

Class harpoon.Backend.Generic.RegFileInfo extends Object implements Serializable

Class harpoon.Backend.Generic.RegFileInfo.SpillException extends Exception implements Serializable

Class harpoon.Backend.Generic.Runtime extends Object implements Serializable

Serialized Fields

configurationSet

Set<E> configurationSet
Return a Set of labels which specify configuration dependencies. A reference will be emitted by the FLEX component of this Generic.Runtime for each string in this set, which should match correspondingly-named labels in a properly configured C runtime. This allows us to check at link time that the C runtime's configuration matches the FLEX configuration.

Class harpoon.Backend.Generic.Runtime.ObjectBuilder extends Object implements Serializable

Class harpoon.Backend.Generic.Runtime.TreeBuilder extends Object implements Serializable


Package harpoon.Backend.Maps

Class harpoon.Backend.Maps.CHFinalMap extends DefaultFinalMap implements Serializable

Serialized Fields

ch

ClassHierarchy ch

Class harpoon.Backend.Maps.DefaultFinalMap extends FinalMap implements Serializable

Class harpoon.Backend.Maps.DefaultNameMap extends NameMap implements Serializable

Serialized Fields

prependUnderscore

boolean prependUnderscore

strMap

Map<K,V> strMap

Class harpoon.Backend.Maps.FieldMap extends Object implements Serializable

Class harpoon.Backend.Maps.MethodMap extends Object implements Serializable

Class harpoon.Backend.Maps.NameMap extends Object implements Serializable


Package harpoon.Backend.MIPS

Class harpoon.Backend.MIPS.Frame extends Frame implements Serializable

Serialized Fields

runtime

Runtime runtime

regFileInfo

RegFileInfo regFileInfo

instrBuilder

InstrBuilder instrBuilder

codegen

CodeGen codegen

tempBuilder

TempBuilder tempBuilder

linker

Linker linker

gcInfo

GCInfo gcInfo

type

String type

noTagCheck

Map<K,V> noTagCheck

usedDANum

Set<E> usedDANum

Class harpoon.Backend.MIPS.RegFileInfo extends RegFileInfo implements Serializable

Serialized Fields

reg

Temp[] reg

callerSaveRegs

Set<E> callerSaveRegs

calleeSaveRegs

Set<E> calleeSaveRegs

liveOnExitRegs

Set<E> liveOnExitRegs

regGeneral

Temp[] regGeneral

regtf

TempFactory regtf

oneWordAssigns

Set<E> oneWordAssigns

twoWordAssigns

Set<E> twoWordAssigns

ZERO

Temp ZERO

AT

Temp AT

V0

Temp V0

V1

Temp V1

A0

Temp A0

A1

Temp A1

A2

Temp A2

A3

Temp A3

T0

Temp T0

T1

Temp T1

T2

Temp T2

T3

Temp T3

T4

Temp T4

T5

Temp T5

T6

Temp T6

T7

Temp T7

T8

Temp T8

T9

Temp T9

S0

Temp S0

S1

Temp S1

S2

Temp S2

S3

Temp S3

S4

Temp S4

S5

Temp S5

S6

Temp S6

S7

Temp S7

K0

Temp K0

K1

Temp K1

GP

Temp GP

FP

Temp FP

SP

Temp SP

LR

Temp LR

regtop

int regtop
The index of the next register to be allocated.


makeLocationDataCalled

boolean makeLocationDataCalled

Package harpoon.Backend.PreciseC

Class harpoon.Backend.PreciseC.Frame extends Frame implements Serializable

Serialized Fields

runtime

Runtime runtime

linker

Linker linker

regfileinfo

RegFileInfo regfileinfo

globals

List<E> globals

locationfactory

LocationFactory locationfactory

Class harpoon.Backend.PreciseC.PGCNiftyAllocationStrategy extends NiftyAllocationStrategy implements Serializable

Class harpoon.Backend.PreciseC.PGCNiftyAllocationStrategyWithStats extends PGCNiftyAllocationStrategy implements Serializable


Package harpoon.Backend.Runtime1

Class harpoon.Backend.Runtime1.AllocationStrategy extends Object implements Serializable

Class harpoon.Backend.Runtime1.AppelAllocationStrategy extends AllocationStrategy implements Serializable

Serialized Fields

frame

Frame frame

memLimit

LocationFactory.Location memLimit

nextPtr

LocationFactory.Location nextPtr

Class harpoon.Backend.Runtime1.BDWAllocationStrategy extends MallocAllocationStrategy implements Serializable

Class harpoon.Backend.Runtime1.HeapStatsAllocationStrategy extends MallocAllocationStrategy implements Serializable

Class harpoon.Backend.Runtime1.MallocAllocationStrategy extends AllocationStrategy implements Serializable

Serialized Fields

frame

Frame frame

funcname

String funcname

Class harpoon.Backend.Runtime1.NiftyAllocationStrategy extends MallocAllocationStrategy implements Serializable

Class harpoon.Backend.Runtime1.NullAllocationStrategy extends AllocationStrategy implements Serializable

Class harpoon.Backend.Runtime1.ObjectBuilder extends Runtime.ObjectBuilder implements Serializable

Serialized Fields

runtime

Runtime runtime

pointersAreLong

boolean pointersAreLong

ro

ObjectBuilder.RootOracle ro

rnd

Random rnd

HCobject

HClass HCobject

Class harpoon.Backend.Runtime1.ObjectBuilder.RootOracle extends Object implements Serializable

Class harpoon.Backend.Runtime1.Runtime extends Runtime implements Serializable

Serialized Fields

frame

Frame frame

main

HMethod main

ch

ClassHierarchy ch

cg

CallGraph cg

as

AllocationStrategy as

ob

Runtime.ObjectBuilder ob

staticInitializers

List<E> staticInitializers

treeBuilder

TreeBuilder treeBuilder

nameMap

NameMap nameMap

frozen

boolean frozen

stringsSeen

Set<E> stringsSeen

Class harpoon.Backend.Runtime1.SPAllocationStrategy extends MallocAllocationStrategy implements Serializable

Class harpoon.Backend.Runtime1.TreeBuilder extends Runtime.TreeBuilder implements Serializable

Serialized Fields

as

AllocationStrategy as
allocation strategy to use.


WORD_SIZE

int WORD_SIZE

LONG_WORD_SIZE

int LONG_WORD_SIZE

POINTER_SIZE

int POINTER_SIZE

OBJECT_HEADER_SIZE

int OBJECT_HEADER_SIZE

OBJ_CLAZ_OFF

int OBJ_CLAZ_OFF

OBJ_HASH_OFF

int OBJ_HASH_OFF

OBJ_ALENGTH_OFF

int OBJ_ALENGTH_OFF

OBJ_AZERO_OFF

int OBJ_AZERO_OFF

OBJ_FZERO_OFF

int OBJ_FZERO_OFF

CLAZ_INTERFACES_OFF

int CLAZ_INTERFACES_OFF

CLAZ_CLAZINFO

int CLAZ_CLAZINFO

CLAZ_COMPONENT_OFF

int CLAZ_COMPONENT_OFF

CLAZ_INTERFZ_OFF

int CLAZ_INTERFZ_OFF

CLAZ_SIZE_OFF

int CLAZ_SIZE_OFF

CLAZ_DEPTH_OFF

int CLAZ_DEPTH_OFF

CLAZ_GCENTRY_OFF

int CLAZ_GCENTRY_OFF

CLAZ_EXTRAINFO_OFF

int CLAZ_EXTRAINFO_OFF

CLAZ_DISPLAY_OFF

int CLAZ_DISPLAY_OFF

CLAZ_METHODS_OFF

int CLAZ_METHODS_OFF

runtime

Runtime runtime

linker

Linker linker

cdm

ClassDepthMap cdm

imm

MethodMap imm

cmm

MethodMap cmm

cfm

FieldMap cfm

stringSet

Set<E> stringSet

pointerAlignment

int pointerAlignment

Package harpoon.Backend.Runtime2

Class harpoon.Backend.Runtime2.Runtime extends Runtime implements Serializable

Class harpoon.Backend.Runtime2.TreeBuilder extends TreeBuilder implements Serializable


Package harpoon.Backend.RuntimeTiny

Class harpoon.Backend.RuntimeTiny.ObjectBuilder extends ObjectBuilder implements Serializable

Serialized Fields

runtime

Runtime runtime

Class harpoon.Backend.RuntimeTiny.Runtime extends Runtime implements Serializable

Serialized Fields

cn

harpoon.Backend.RuntimeTiny.ClazNumbering cn

clazBytes

int clazBytes

Class harpoon.Backend.RuntimeTiny.TinyClassFieldMap extends ClassFieldMap implements Serializable

Serialized Fields

first_alignment

int first_alignment

cache

Map<K,V> cache

cache2

Map<K,V> cache2

Class harpoon.Backend.RuntimeTiny.TinyPackedClassFieldMap extends FieldMap implements Serializable

Serialized Fields

runtime

Runtime runtime

fieldcache

Map<K,V> fieldcache
maps fields to already-computed offsets


freecache

Map<K,V> freecache
maps classes to 'free space' lists.

Class harpoon.Backend.RuntimeTiny.TreeBuilder extends TreeBuilder implements Serializable

Serialized Fields

runtime

Runtime runtime

Package harpoon.Backend.Sparc

Class harpoon.Backend.Sparc.Frame extends Frame implements Serializable

Serialized Fields

regFileInfo

RegFileInfo regFileInfo

instrBuilder

InstrBuilder instrBuilder

codegen

CodeGen codegen

runtime

Runtime runtime

tempBuilder

TempBuilder tempBuilder

linker

Linker linker

gcInfo

GCInfo gcInfo

Class harpoon.Backend.Sparc.RegFileInfo extends RegFileInfo implements Serializable

Serialized Fields

regtf

TempFactory regtf

integerRegs

Temp[] integerRegs

generalRegs

Temp[] generalRegs

floatingRegs

Temp[] floatingRegs

generalIntRegs

Temp[] generalIntRegs

allRegs

Temp[] allRegs

callerSaveRegs

Set<E> callerSaveRegs

calleeSaveRegs

Set<E> calleeSaveRegs

liveOnExitRegs

Set<E> liveOnExitRegs

SP

Temp SP

FP

Temp FP

tb

TempBuilder tb

regtop

int regtop

makeLocationDataCalled

boolean makeLocationDataCalled

Package harpoon.Backend.StrongARM

Class harpoon.Backend.StrongARM.Frame extends Frame implements Serializable

Serialized Fields

runtime

Runtime runtime

regFileInfo

RegFileInfo regFileInfo

instrBuilder

InstrBuilder instrBuilder

codegen

CodeGen codegen

tempBuilder

TempBuilder tempBuilder

linker

Linker linker

gcInfo

GCInfo gcInfo

Class harpoon.Backend.StrongARM.RegFileInfo extends RegFileInfo implements Serializable

Serialized Fields

reg

Temp[] reg

callerSaveRegs

Set<E> callerSaveRegs

calleeSaveRegs

Set<E> calleeSaveRegs

liveOnExitRegs

Set<E> liveOnExitRegs

regGeneral

Temp[] regGeneral

regtf

TempFactory regtf

oneWordAssigns

Set<E> oneWordAssigns

twoWordAssigns

Set<E> twoWordAssigns

FP

Temp FP

IP

Temp IP

SP

Temp SP

LR

Temp LR

PC

Temp PC

regtop

int regtop
The index of the next register to be allocated.


makeLocationDataCalled

boolean makeLocationDataCalled

Class harpoon.Backend.StrongARM.TwoWordTemp extends Temp implements Serializable

Serialized Fields

low

Temp low

high

Temp high

Package harpoon.ClassFile

Class harpoon.ClassFile.CachingCodeFactory extends Object implements Serializable

Serialization Methods

writeObject

private void writeObject(ObjectOutputStream out)
                  throws IOException
Serializable interface.

Throws:
IOException
Serialized Fields

parent

HCodeFactory parent
Parent code factory. Creates the representations this CachingCodeFactory caches.

 

h

Map<K,V> h
Representation cache.


flushBeforeSave

boolean flushBeforeSave
Flush the representation cache before being saving to disk?

Class harpoon.ClassFile.DuplicateClassException extends RuntimeException implements Serializable

Class harpoon.ClassFile.DuplicateMemberException extends RuntimeException implements Serializable

Class harpoon.ClassFile.NoSuchClassException extends RuntimeException implements Serializable

Class harpoon.ClassFile.NoSuchMemberException extends RuntimeException implements Serializable

Class harpoon.ClassFile.Relinker extends Linker implements Serializable

Serialization Methods

readObject

private void readObject(ObjectInputStream in)
                 throws IOException,
                        ClassNotFoundException
Throws:
IOException
ClassNotFoundException

writeObject

private void writeObject(ObjectOutputStream out)
                  throws IOException
Throws:
IOException
Serialized Fields

linker

Linker linker

Package harpoon.Instrumentation.AllocationStatistics

Class harpoon.Instrumentation.AllocationStatistics.AllocationNumbering extends Object implements Serializable

Serialized Fields

alloc2int

Map<K,V> alloc2int

call2int

Map<K,V> call2int

alloc_count

int alloc_count

call_count

int call_count

Class harpoon.Instrumentation.AllocationStatistics.InstrumentAllocs extends MethodMutator implements Serializable

Serialized Fields

main

HMethod main

an

AllocationNumbering an

syncs

boolean syncs

callchains

boolean callchains

hc_obj

HClass hc_obj

hm_count_alloc

HMethod hm_count_alloc

hm_count_sync

HMethod hm_count_sync

method3

HMethod method3

hm_call_enter

HMethod hm_call_enter

hm_call_exit

HMethod hm_call_exit

hm_instr_exit

HMethod hm_instr_exit

hm_orig_exit

HMethod hm_orig_exit

instr_visitor

harpoon.Instrumentation.AllocationStatistics.InstrumentAllocs.InstrQuadVisitor instr_visitor

Class harpoon.Instrumentation.AllocationStatistics.InstrumentAllocs2 extends MethodMutator implements Serializable

Serialized Fields

main

HMethod main

an

AllocationNumbering an

hm_instr_exit

HMethod hm_instr_exit

hm_orig_exit

HMethod hm_orig_exit

Class harpoon.Instrumentation.AllocationStatistics.InstrumentedAllocationStrategy extends MallocAllocationStrategy implements Serializable

Serialized Fields

instrumMethod

HMethod instrumMethod

Class harpoon.Instrumentation.AllocationStatistics.UnknownAllocationSiteError extends Error implements Serializable


Package harpoon.Interpret.Tree

Class harpoon.Interpret.Tree.DefaultFrame extends Frame implements Serializable

Serialized Fields

m_classHierarchy

ClassHierarchy m_classHierarchy

m_allocator

harpoon.Interpret.Tree.AllocationStrategy m_allocator

m_nextPtr

Temp m_nextPtr

m_memLimit

Temp m_memLimit

m_offsetMap

harpoon.Interpret.Tree.OffsetMap m_offsetMap

m_runtime

Runtime m_runtime

m_tempFactory

TempFactory m_tempFactory

linker

Linker linker

m_regfileinfo

RegFileInfo m_regfileinfo

Class harpoon.Interpret.Tree.InterfaceListPointer extends harpoon.Interpret.Tree.Pointer implements Serializable

Class harpoon.Interpret.Tree.PointerTypeChangedException extends RuntimeException implements Serializable

Serialized Fields

ptr

harpoon.Interpret.Tree.Pointer ptr
The Pointer whose type is changed.

Class harpoon.Interpret.Tree.StringPointer extends harpoon.Interpret.Tree.Pointer implements Serializable

Serialized Fields

ss

harpoon.Interpret.Tree.StaticState ss

value

Object value

Class harpoon.Interpret.Tree.UndefinedPointer extends harpoon.Interpret.Tree.Pointer implements Serializable


Package harpoon.IR.LowQuad

Class harpoon.IR.LowQuad.Code extends Code implements Serializable

Serialized Fields

m_derivation

Derivation<HCE extends HCodeElement> m_derivation

Class harpoon.IR.LowQuad.LowQuad extends Quad implements Serializable

Class harpoon.IR.LowQuad.LowQuadNoSSA extends Code implements Serializable

Class harpoon.IR.LowQuad.LowQuadSSA extends Code implements Serializable

Class harpoon.IR.LowQuad.LowQuadSSI extends Code implements Serializable

Class harpoon.IR.LowQuad.PAOFFSET extends PCONST implements Serializable

Serialized Fields

arrayType

HClass arrayType
The array type.


index

Temp index
The index into the array.

Class harpoon.IR.LowQuad.PARRAY extends PPTR implements Serializable

Class harpoon.IR.LowQuad.PCALL extends SIGMA implements Serializable

Serialized Fields

ptr

Temp ptr
The method pointer to dereference.


params

Temp[] params
Parameters to pass to the method.


retval

Temp retval
Destination for the method's return value; null for void methods.


retex

Temp retex
Destination for any exception thrown by the method. May not be null.


isVirtual

boolean isVirtual
Whether this is a virtual or non-virtual method invocation.


isTailCall

boolean isTailCall
Whether this should be treated as a tail call.

Class harpoon.IR.LowQuad.PCONST extends LowQuad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the offset or constant.

Class harpoon.IR.LowQuad.PFCONST extends PCONST implements Serializable

Serialized Fields

field

HField field
The HField to address.

Class harpoon.IR.LowQuad.PFIELD extends PPTR implements Serializable

Class harpoon.IR.LowQuad.PFOFFSET extends PCONST implements Serializable

Serialized Fields

field

HField field
The HField to address.

Class harpoon.IR.LowQuad.PGET extends LowQuad implements Serializable

Serialized Fields

dst

Temp dst
Temp in which to store the fetched field or array element.


ptr

Temp ptr
Temp holding the POINTER value to dereference and fetch.


type

HClass type
The type of the object we are fetching. This may be a sub-integer type, and thus disagree with the type of dst. For non-primitive types, this may be simply Object; use a typemap and the dst field if you need accurate non-primitive types.

Class harpoon.IR.LowQuad.PMCONST extends PCONST implements Serializable

Serialized Fields

method

HMethod method
The HMethod to address.

Class harpoon.IR.LowQuad.PMETHOD extends PPTR implements Serializable

Class harpoon.IR.LowQuad.PMOFFSET extends PCONST implements Serializable

Serialized Fields

method

HMethod method
The HMethod to address.

Class harpoon.IR.LowQuad.POPER extends OPER implements Serializable

Class harpoon.IR.LowQuad.PPTR extends LowQuad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the computed POINTER value.


objectref

Temp objectref
The Temp holding the object reference to convert.

Class harpoon.IR.LowQuad.PSET extends LowQuad implements Serializable

Serialized Fields

ptr

Temp ptr
Temp holding the POINTER value to dereference and store to.


src

Temp src
Temp containing the desired new value of the field or element.


type

HClass type
The type of the object we are storing. This may be a sub-integer type, and thus disagree with the type of src. For non-primitive types, this may be simply Object; use a typemap and the src field if you need accurate non-primitive types.


Package harpoon.IR.Quads

Class harpoon.IR.Quads.AGET extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the fetched element.


objectref

Temp objectref
The array reference.


index

Temp index
The Temp holding the index of the element to get.


type

HClass type
The component type of the referenced array.

Class harpoon.IR.Quads.ALENGTH extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the array length.


objectref

Temp objectref
The array reference to query.

Class harpoon.IR.Quads.ANEW extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the new array reference.


hclass

HClass hclass
Description of array class to create.


dims

Temp[] dims
Lengths of each dimension to create.

Class harpoon.IR.Quads.ARRAYINIT extends Quad implements Serializable

Serialized Fields

objectref

Temp objectref
The array reference to initialize.


type

HClass type
The component type.


offset

int offset
The starting index for the initializers.


value

Object[] value
The array initializers. Elements must be instances of the type wrapper.

Class harpoon.IR.Quads.ASET extends Quad implements Serializable

Serialized Fields

objectref

Temp objectref
The array reference


index

Temp index
The Temp holding the index of the element to get.


src

Temp src
The new value for the array element.


type

HClass type
The component type of the referenced array.

Class harpoon.IR.Quads.CALL extends SIGMA implements Serializable

Serialized Fields

method

HMethod method
The method to invoke.


params

Temp[] params
Parameters to pass to the method. The object on which to invoke the method is the first element in the parameter list of a virtual method.


retval

Temp retval
Destination for the method's return value; null for void methods.


retex

Temp retex
Destination for any exception thrown by the method. If null exceptions are thrown, not caught.


isVirtual

boolean isVirtual
Special flag for non-virtual methods. (INVOKESPECIAL has different invoke semantics)


isTailCall

boolean isTailCall
Special flag for tail calls.

Class harpoon.IR.Quads.CJMP extends SIGMA implements Serializable

Serialized Fields

test

Temp test

Class harpoon.IR.Quads.Code extends HCode<Quad> implements Serializable

Serialized Fields

parent

HMethod parent
The method that this code view represents.


quads

Quad quads
The quadruples composing this code view.


qf

QuadFactory qf
Quad factory.


ai

AllocationInformation<HCE extends HCodeElement> ai
AllocationInformation for this HCode.


modCount

int modCount
Keep track of modifications to this Code so that the getElementsI() Iterator can fail-fast.

Class harpoon.IR.Quads.COMPONENTOF extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the result of the test.


arrayref

Temp arrayref
The array object to test.


objectref

Temp objectref
The component object to test.

Class harpoon.IR.Quads.CONST extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The destination Temp.


value

Object value
An object representing the constant value.


type

HClass type
The type of the constant value.

Class harpoon.IR.Quads.DEBUG extends Quad implements Serializable

Serialized Fields

str

String str
The debugging string.

Class harpoon.IR.Quads.Edge extends CFGEdge<Quad,Edge> implements Serializable

Serialized Fields

from

Quad from

to

Quad to

from_index

int from_index

to_index

int to_index

Class harpoon.IR.Quads.FOOTER extends Quad implements Serializable

Class harpoon.IR.Quads.GET extends Quad implements Serializable

Serialized Fields

dst

Temp dst
Temp in which to store the fetched field contents.


field

HField field
The field description.


objectref

Temp objectref
Reference to the object containing the field.

null if field is static.

Class harpoon.IR.Quads.HANDLER extends Quad implements Serializable

Serialized Fields

exceptionTemp

Temp exceptionTemp
The Temp holding the caught exception on invocation of this HANDLER.


caughtException

HClass caughtException
The exception caught by this HANDLER, or null for any exception.


protectedSet

HANDLER.ProtectedSet protectedSet
The set of Quads protected by this HANDLER.

Class harpoon.IR.Quads.HEADER extends Quad implements Serializable

Class harpoon.IR.Quads.INSTANCEOF extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the result of the test.


src

Temp src
The Temp to evaluate.


hclass

HClass hclass
The class in which src is tested for membership.

Class harpoon.IR.Quads.LABEL extends PHI implements Serializable

Serialized Fields

label

String label
the (optional) name of this label.

null if the label has no name.

Class harpoon.IR.Quads.METHOD extends Quad implements Serializable

Serialized Fields

params

Temp[] params
the temporary variables used for method formals.

Class harpoon.IR.Quads.MONITORENTER extends Quad implements Serializable

Serialized Fields

lock

Temp lock
The object containing the monitor to be locked.

Class harpoon.IR.Quads.MONITOREXIT extends Quad implements Serializable

Serialized Fields

lock

Temp lock
The object containing the monitor to be released.

Class harpoon.IR.Quads.MOVE extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The destination Temp.


src

Temp src
The source Temp.

Class harpoon.IR.Quads.NEW extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the new object.


hclass

HClass hclass
Description of the class to create.

Class harpoon.IR.Quads.NOP extends Quad implements Serializable

Class harpoon.IR.Quads.OPER extends Quad implements Serializable

Serialized Fields

dst

Temp dst
The Temp in which to store the result of the operation.


opcode

int opcode
The operation to be performed, from the Qop class.


operands

Temp[] operands
Operands of the operation, in left-to-right order.

Class harpoon.IR.Quads.PHI extends Quad implements Serializable

Serialized Fields

dst

Temp[] dst
dst[i] is the left-hand side of the i'th phi function in this block.


src

Temp[][] src
src[i][j] is the j'th parameter to the i'th phi function in this block.

Class harpoon.IR.Quads.Quad extends Object implements Serializable

Serialized Fields

qf

QuadFactory qf

source_file

String source_file

source_line

int source_line

id

int id

hashCode

int hashCode

next

Edge[] next

prev

Edge[] prev

Class harpoon.IR.Quads.QuadNoSSA extends Code implements Serializable

Serialized Fields

typeMap

TypeMap<HCE extends HCodeElement> typeMap
Type information for this code view. Only non-null if you pass a non-null TypeMap to the constructor (or use the codeFactoryWithTypes to generate your QuadNoSSAs).

Class harpoon.IR.Quads.QuadRSSx extends Code implements Serializable

Class harpoon.IR.Quads.QuadSSA extends Code implements Serializable

Class harpoon.IR.Quads.QuadSSI extends Code implements Serializable

Serialized Fields

mapNoSSA2SSI

Map<K,V> mapNoSSA2SSI
Map from old no-ssa quads to new ssi quads.


mapSSI2NoSSA

Map<K,V> mapSSI2NoSSA
Map from new ssi quads to old no-ssa quads.

Class harpoon.IR.Quads.QuadWithTry extends Code implements Serializable

Serialized Fields

typemap

TypeMap<HCE extends HCodeElement> typemap

Class harpoon.IR.Quads.ResilientNoSSA extends Code implements Serializable

Class harpoon.IR.Quads.RETURN extends Quad implements Serializable

Serialized Fields

retval

Temp retval
Return value. null if there is no return value.

Class harpoon.IR.Quads.SET extends Quad implements Serializable

Serialized Fields

field

HField field
The field description.


objectref

Temp objectref
Reference to the object containing the field.

null if the field is static.


src

Temp src
Temp containing the desired new value of the field.

Class harpoon.IR.Quads.SIGMA extends Quad implements Serializable

Serialized Fields

dst

Temp[][] dst
dst[i][j] is the j'th element of the tuple on the left-hand side of the i'th sigma function in this block.


src

Temp[] src
src[i] is the argument to the i'th sigma function in this block.

Class harpoon.IR.Quads.SWITCH extends SIGMA implements Serializable

Serialized Fields

index

Temp index
The discriminant, compared against each value in keys.


keys

int[] keys
Integer keys for switch cases.

next(n) is the jump target corresponding to keys[n] for 0 <= n < keys.length.

next(keys.length) is the default target.

Class harpoon.IR.Quads.TempChain extends Temp implements Serializable

Serialized Fields

def

HCodeElement def

nextUse

TempChain nextUse

Class harpoon.IR.Quads.THROW extends Quad implements Serializable

Serialized Fields

throwable

Temp throwable

Class harpoon.IR.Quads.TYPECAST extends NOP implements Serializable

Serialized Fields

objectref

Temp objectref
The Temp to type cast.


hclass

HClass hclass
The class to cast to.

Class harpoon.IR.Quads.TYPESWITCH extends SIGMA implements Serializable

Serialized Fields

index

Temp index
The discriminant, of Object type, whose class is compared against each class type in keys[].


keys

HClass[] keys
Class type keys for typeswitch cases.

next(n) is the jump target corresponding to keys[n] for 0 <= n < keys.length.

next(keys.length) is the default target.


hasDefault

boolean hasDefault
True if this TYPESWITCH has a default case.


Package harpoon.IR.RawClass

Class harpoon.IR.RawClass.ClassDataException extends IOException implements Serializable


Package harpoon.Main

Class harpoon.Main.CompilerState extends Object implements Serializable

Serialized Fields

main

HMethod main

roots

Set<E> roots

linker

Linker linker

hcf

HCodeFactory hcf

classHierarchy

ClassHierarchy classHierarchy

frame

Frame frame

attribs

PersistentMap<K,V> attribs

Package harpoon.Runtime.Transactions

Class harpoon.Runtime.Transactions.TransactionAbortException extends Exception implements Serializable

Serialized Fields

abortUpTo

CommitRecord abortUpTo

Package harpoon.Temp

Class harpoon.Temp.Temp extends Object implements Serializable

Serialized Fields

tf

TempFactory tf

name

String name

hashcode

int hashcode

id

int id

Package harpoon.Util

Class harpoon.Util.ParseUtil.BadLineException extends IOException implements Serializable

Serialized Fields

filename

String filename
readResource will set this to the right value.


line

int line
ditto.

Class harpoon.Util.Tuple extends Object implements Serializable

Serialized Fields

objcmp

Comparator<T> objcmp

elements

Object[] elements

Package harpoon.Util.BasicBlocks

Class harpoon.Util.BasicBlocks.BBConverter extends Object implements Serializable

Serialized Fields

hcf

HCodeFactory hcf

quad_with_try

boolean quad_with_try

Class harpoon.Util.BasicBlocks.CachingBBConverter extends BBConverter implements Serializable

Serialized Fields

cache

Map<K,V> cache

Package harpoon.Util.Collections

Class harpoon.Util.Collections.WorkSet extends WorkSet<E> implements Serializable


Package harpoon.Util.LightBasicBlocks

Class harpoon.Util.LightBasicBlocks.CachingLBBConverter extends LBBConverter implements Serializable

Serialized Fields

cache

Map<K,V> cache

Class harpoon.Util.LightBasicBlocks.CachingSCCLBBFactory extends SCCLBBFactory implements Serializable

Serialized Fields

cache

Map<K,V> cache

Class harpoon.Util.LightBasicBlocks.LBBConverter extends Object implements Serializable

Serialized Fields

bbconv

BBConverter bbconv

Class harpoon.Util.LightBasicBlocks.LightBasicBlock extends Object implements Serializable

Serialized Fields

user_info

Object user_info
Deprecated. 
The user can place his annotations here.


id

int id
Personal numeric ID


str

String str

next

LightBasicBlock[] next
The successor basic blocks.


prev

LightBasicBlock[] prev
The predecessor basic blocks.


elements

HCodeElement[] elements
The instructions in this basic block.


handlerStartIndex

int handlerStartIndex
The index in the next array where the exception handlers start.


protectedStartIndex

int protectedStartIndex
The index in the prev array where the protected lbbs start.

Class harpoon.Util.LightBasicBlocks.LightBasicBlock.Factory extends Object implements Serializable

Serialized Fields

count

int count

hcode

HCode<HCE extends HCodeElement> hcode

lbbs

LightBasicBlock[] lbbs

root_lbb

LightBasicBlock root_lbb

hce2lbb

Map<K,V> hce2lbb

Class harpoon.Util.LightBasicBlocks.SCCLBBFactory extends Object implements Serializable

Serialized Fields

lbbconv

LBBConverter lbbconv
The LBBConverter used to generate the LightBasicBlock views of the methods


Package harpoon.Util.TypeInference

Class harpoon.Util.TypeInference.ArrayInfo extends Object implements Serializable

Class harpoon.Util.TypeInference.CachingArrayInfo extends ArrayInfo implements Serializable

Serialized Fields

cache

Map<K,V> cache

Class harpoon.Util.TypeInference.ExactTemp extends Object implements Serializable

Serialized Fields

q

Quad q

t

Temp t

hash

int hash

Class harpoon.Util.TypeInference.TypeInference extends Object implements Serializable

Serialized Fields

types

jpaul.DataStructs.Relation<K,V> types

rdef

ReachingDefs<HCE extends HCodeElement> rdef

W

PAWorkList W

dependencies

jpaul.DataStructs.Relation<K,V> dependencies