Serialized Form
deferred
WorkSet<E> deferred
- Set of classes waiting to be fixed up.
depth
int depth
- Current level of recursion.
map
Map<K,V> map
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
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
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
readResolve
private Object readResolve()
throws ObjectStreamException
- Throws:
ObjectStreamException
Package harpoon.Analysis.Companions |
Package harpoon.Analysis.Counters |
old2new
Map<K,V> old2new
badboys
Set<E> badboys
linker
Linker linker
needsNullCheck
Set<E> needsNullCheck
Package harpoon.Analysis.DynamicSyncRemoval |
checkMethod
HMethod checkMethod
Package harpoon.Analysis.EnvBuilder |
Package harpoon.Analysis.EventDriven |
Package harpoon.Analysis.GraphColoring |
node
Object node
- The node that was targetted for coloring.
color
Color color
- Color intended for assignment.
node
Object node
- Node intended to be assigned to
color
.
rmvSuggsLarge
Collection<E> rmvSuggsLarge
rmvSuggs
Collection<E> rmvSuggs
Package harpoon.Analysis.Instr |
reg
Temp reg
Package harpoon.Analysis.LowQuad.Loop |
dT
HashMap<K,V> dT
tT
HashMap<K,V> tT
parentDerivation
Derivation<HCE extends HCodeElement> parentDerivation
quadmap
Map<K,V> quadmap
tempMap
TempMap tempMap
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 |
type
HClass type
isExact
boolean isExact
Package harpoon.Analysis.MemOpt |
Package harpoon.Analysis.MetaMethods |
hclass
HClass hclass
kind
int kind
callers_cmpct
Map<K,V> callers_cmpct
empty_array
MetaMethod[] empty_array
navigator
jpaul.Graphs.BiDiNavigator<Vertex> navigator
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
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
hm
HMethod hm
types
GenType[] types
Package harpoon.Analysis.PA2.Mutation |
Package harpoon.Analysis.PointerAnalysis |
hashCode
int hashCode
map
Map<K,V> map
alpha_ld
HashSet<E> alpha_ld
pi_ld
Relation pi_ld
alpha_sync
Relation alpha_sync
pi_sync
Hashtable<K,V> pi_sync
after
Relation after
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
size
int size
root
harpoon.Analysis.PointerAnalysis.LightMap.BinTreeNode<K,V> root
cachedHashCode
int cachedHashCode
binTreeNav
jpaul.Graphs.BinTreeNavigator<T> binTreeNav
var_edges
Relation var_edges
node_edges
Map<K,V> node_edges
info
Object info
next
ListCell next
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
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.
hip
boolean hip
sa
boolean sa
ta
boolean ta
uoh
boolean uoh
mh
boolean mh
ns
boolean ns
ah
Temp ah
actualClass
HClass actualClass
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
n1
PANode n1
f
String f
n2
PANode n2
rel_n
Relation rel_n
rel_m
Relation rel_m
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.
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.
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.
hash
Hashtable<K,V> hash
list
LinkedList<E> list
set
HashSet<E> set
list
LinkedList<E> list
set
HashSet<E> set
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
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
hash
Hashtable<K,V> hash
- The top-level
Hashtable
.
Package harpoon.Analysis.PreciseGC |
parent
HCodeFactory parent
ch
ClassHierarchy ch
linker
Linker linker
iMap
Map<K,V> iMap
iMap2
Map<K,V> iMap2
mraf
MRAFactory mraf
clearBitHM
HMethod clearBitHM
ignoreMap
Map<K,V> ignoreMap
dwba
DynamicWBInserter.DynamicWBAnalysis dwba
clearBitHM
HMethod clearBitHM
ignoreMap
Map<K,V> ignoreMap
recursiveConstructors
Set<E> recursiveConstructors
JLRF
HClass JLRF
arrayWB
HMethod arrayWB
fieldWB
HMethod fieldWB
wba
WriteBarrierInserter.WriteBarrierAnalysis wba
dummyHM
HMethod dummyHM
JLT
HClass JLT
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 |
etm
ExactTypeMap<HCE extends HCodeElement> etm
ch
ClassHierarchy ch
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.
cg
CallGraph cg
fso
FieldSyncOracle fso
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.
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
numQuads
long numQuads
parent
HCodeFactory parent
callable
Set<E> callable
- The set of callable methods we will use to guide our virtualization.
Package harpoon.Analysis.Realtime |
methodMap
HashMap<K,V> methodMap
fromClass
HClass fromClass
toClass
HClass toClass
ignorePackages
Set<E> ignorePackages
ignoreClasses
Set<E> ignoreClasses
codeName
String codeName
Package harpoon.Analysis.RoleInference |
linker
Linker linker
Package harpoon.Analysis.SizeOpt |
bwa
BitWidthAnalysis bwa
linker
Linker linker
hcf
HCodeFactory hcf
bfn
BitFieldNumbering bfn
pointersAreLong
boolean pointersAreLong
suffix
String suffix
dio
DefiniteInitOracle dio
frame
Frame frame
tb
Runtime.TreeBuilder tb
bwa
BitWidthAnalysis bwa
Package harpoon.Analysis.Transactions |
linker
Linker linker
which_impl
String which_impl
comp2impl
Map<K,V> comp2impl
HMimpac
HMethod HMimpac
- Parent code factory.
parent
HCodeFactory parent
- Parent code factory.
cache
Map<K,V> cache
- Representation cache.
declaredFieldMap
Map<K,V> declaredFieldMap
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 |
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.
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.
readResolve
protected abstract Object readResolve()
- This method must be overridden to ensure that
Token
s
are still singletons after deserialization. See the template
in the class description above.
suffix
String suffix
Package harpoon.Analysis.Tree |
Package harpoon.Analysis.TypeInference |
Package harpoon.Backend.Analysis |
cache
Map<K,V> cache
cache
Map<K,V> cache
mtable
Hashtable<K,V> mtable
factory
harpoon.Backend.Analysis.InterfaceMethodMap.HmNodeFactory factory
fieldcache
Map<K,V> fieldcache
- maps fields to already-computed offsets
freecache
Map<K,V> freecache
- maps classes to 'free space' lists.
cache
Map<K,V> cache
Package harpoon.Backend.Generic |
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.
Package harpoon.Backend.Maps |
ch
ClassHierarchy ch
prependUnderscore
boolean prependUnderscore
strMap
Map<K,V> strMap
Package harpoon.Backend.MIPS |
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
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 |
runtime
Runtime runtime
linker
Linker linker
regfileinfo
RegFileInfo regfileinfo
globals
List<E> globals
locationfactory
LocationFactory locationfactory
Package harpoon.Backend.Runtime1 |
frame
Frame frame
memLimit
LocationFactory.Location memLimit
nextPtr
LocationFactory.Location nextPtr
frame
Frame frame
funcname
String funcname
runtime
Runtime runtime
pointersAreLong
boolean pointersAreLong
ro
ObjectBuilder.RootOracle ro
rnd
Random rnd
HCobject
HClass HCobject
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
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 |
Package harpoon.Backend.RuntimeTiny |
runtime
Runtime runtime
cn
harpoon.Backend.RuntimeTiny.ClazNumbering cn
clazBytes
int clazBytes
first_alignment
int first_alignment
cache
Map<K,V> cache
cache2
Map<K,V> cache2
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.
runtime
Runtime runtime
Package harpoon.Backend.Sparc |
regFileInfo
RegFileInfo regFileInfo
instrBuilder
InstrBuilder instrBuilder
codegen
CodeGen codegen
runtime
Runtime runtime
tempBuilder
TempBuilder tempBuilder
linker
Linker linker
gcInfo
GCInfo gcInfo
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 |
runtime
Runtime runtime
regFileInfo
RegFileInfo regFileInfo
instrBuilder
InstrBuilder instrBuilder
codegen
CodeGen codegen
tempBuilder
TempBuilder tempBuilder
linker
Linker linker
gcInfo
GCInfo gcInfo
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
low
Temp low
high
Temp high
Package harpoon.ClassFile |
writeObject
private void writeObject(ObjectOutputStream out)
throws IOException
- Serializable interface.
- Throws:
IOException
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?
readObject
private void readObject(ObjectInputStream in)
throws IOException,
ClassNotFoundException
- Throws:
IOException
ClassNotFoundException
writeObject
private void writeObject(ObjectOutputStream out)
throws IOException
- Throws:
IOException
linker
Linker linker
Package harpoon.Instrumentation.AllocationStatistics |
alloc2int
Map<K,V> alloc2int
call2int
Map<K,V> call2int
alloc_count
int alloc_count
call_count
int call_count
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
main
HMethod main
an
AllocationNumbering an
hm_instr_exit
HMethod hm_instr_exit
hm_orig_exit
HMethod hm_orig_exit
instrumMethod
HMethod instrumMethod
Package harpoon.Interpret.Tree |
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
ptr
harpoon.Interpret.Tree.Pointer ptr
- The
Pointer
whose type is changed.
ss
harpoon.Interpret.Tree.StaticState ss
value
Object value
Package harpoon.IR.LowQuad |
m_derivation
Derivation<HCE extends HCodeElement> m_derivation
arrayType
HClass arrayType
- The array type.
index
Temp index
- The index into the array.
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.
dst
Temp dst
- The
Temp
in which to store the offset or constant.
field
HField field
- The
HField
to address.
field
HField field
- The
HField
to address.
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.
method
HMethod method
- The
HMethod
to address.
method
HMethod method
- The
HMethod
to address.
dst
Temp dst
- The
Temp
in which to store the computed
POINTER
value.
objectref
Temp objectref
- The
Temp
holding the object reference to
convert.
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.
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.
dst
Temp dst
- The
Temp
in which to store the array length.
objectref
Temp objectref
- The array reference to query.
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.
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.
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.
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.
test
Temp test
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.
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.
dst
Temp dst
- The destination
Temp
.
value
Object value
- An object representing the constant value.
type
HClass type
- The type of the constant value.
str
String str
- The debugging string.
from
Quad from
to
Quad to
from_index
int from_index
to_index
int to_index
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.
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
Quad
s protected by this HANDLER
.
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.
label
String label
- the (optional) name of this label.
null
if the label has no name.
params
Temp[] params
- the temporary variables used for method formals.
lock
Temp lock
- The object containing the monitor to be locked.
lock
Temp lock
- The object containing the monitor to be released.
dst
Temp dst
- The destination
Temp
.
src
Temp src
- The source
Temp
.
dst
Temp dst
- The
Temp
in which to store the new object.
hclass
HClass hclass
- Description of the class to create.
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.
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.
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
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 QuadNoSSA
s).
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.
typemap
TypeMap<HCE extends HCodeElement> typemap
retval
Temp retval
- Return value.
null
if there is no return value.
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.
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.
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.
def
HCodeElement def
nextUse
TempChain nextUse
throwable
Temp throwable
objectref
Temp objectref
- The
Temp
to type cast.
hclass
HClass hclass
- The class to cast to.
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 |
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 |
abortUpTo
CommitRecord abortUpTo
tf
TempFactory tf
name
String name
hashcode
int hashcode
id
int id
filename
String filename
- readResource will set this to the right value.
line
int line
- ditto.
objcmp
Comparator<T> objcmp
elements
Object[] elements
Package harpoon.Util.BasicBlocks |
hcf
HCodeFactory hcf
quad_with_try
boolean quad_with_try
cache
Map<K,V> cache
Package harpoon.Util.Collections |
Package harpoon.Util.LightBasicBlocks |
cache
Map<K,V> cache
cache
Map<K,V> cache
bbconv
BBConverter bbconv
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.
count
int count
hcode
HCode<HCE extends HCodeElement> hcode
lbbs
LightBasicBlock[] lbbs
root_lbb
LightBasicBlock root_lbb
hce2lbb
Map<K,V> hce2lbb
lbbconv
LBBConverter lbbconv
- The
LBBConverter
used to generate the
LightBasicBlock views of the methods
Package harpoon.Util.TypeInference |
cache
Map<K,V> cache
q
Quad q
t
Temp t
hash
int hash
types
jpaul.DataStructs.Relation<K,V> types
rdef
ReachingDefs<HCE extends HCodeElement> rdef
W
PAWorkList W
dependencies
jpaul.DataStructs.Relation<K,V> dependencies