Compil3r.Quad
Class CSBDDPointerAnalysis

java.lang.Object
Compil3r.Quad.CSBDDPointerAnalysis
- public class CSBDDPointerAnalysis
- extends java.lang.Object
- Version:
- $Id: CSBDDPointerAnalysis.java,v 1.6 2003/07/04 07:38:57 joewhaley Exp $
|
Method Summary |
void |
addAllocType(MethodSummary.Node site,
Clazz.jq_Reference type)
|
void |
addClassType(Clazz.jq_Reference type)
|
void |
addVarType(MethodSummary.Node var,
Clazz.jq_Reference type)
|
void |
calculateTypeFilter()
|
(package private) void |
calculateTypeHierarchy()
|
(package private) void |
dumpResults()
|
(package private) int |
fillInVarIndices(org.sf.javabdd.BDDDomain[] doms,
int domainIndex,
int numDomains,
int[][] localOrders,
int bitIndex,
int[] varorder)
|
(package private) CSBDDPointerAnalysis.BDDMethodSummary |
getBDDSummary(MethodSummary ms)
|
(package private) Clazz.jq_Field |
getField(int index)
|
(package private) int |
getFieldIndex(Clazz.jq_Field f)
|
(package private) MethodSummary.Node |
getHeapobj(int index)
|
(package private) int |
getHeapobjIndex(MethodSummary.Node site)
|
(package private) CSBDDPointerAnalysis.IndexMap |
getIndexMap(org.sf.javabdd.BDDDomain d)
|
(package private) int |
getNewVariableIndex(ProgramLocation mc,
Clazz.jq_Method callee,
int p)
|
(package private) Clazz.jq_Reference |
getType(int index)
|
(package private) int |
getTypeIndex(Clazz.jq_Reference f)
|
(package private) MethodSummary.Node |
getVariable(int index)
|
(package private) int |
getVariableIndex(MethodSummary.Node dest)
|
(package private) void |
getVariableMap(int[] map,
org.sf.javabdd.BDDDomain[] doms)
|
(package private) Clazz.jq_Reference |
getVariableType(int index)
|
(package private) void |
go(java.util.Collection roots)
|
static void |
main(java.lang.String[] args)
|
(package private) int[] |
makeVarOrdering(boolean reverseLocal,
java.lang.String ordering)
|
(package private) void |
remapping(int[] varorder,
int[] maps)
|
(package private) void |
reset()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TRACE_ALL
public static final boolean TRACE_ALL
- See Also:
- Constant Field Values
TRACE_WORKLIST
public static final boolean TRACE_WORKLIST
- See Also:
- Constant Field Values
TRACE_SUMMARIES
public static final boolean TRACE_SUMMARIES
- See Also:
- Constant Field Values
TRACE_CALLEE
public static final boolean TRACE_CALLEE
- See Also:
- Constant Field Values
TRACE_OVERLAP
public static final boolean TRACE_OVERLAP
- See Also:
- Constant Field Values
TRACE_MATCHING
public static final boolean TRACE_MATCHING
- See Also:
- Constant Field Values
TRACE_TRIMMING
public static final boolean TRACE_TRIMMING
- See Also:
- Constant Field Values
TRACE_TYPES
public static final boolean TRACE_TYPES
- See Also:
- Constant Field Values
TRACE_MAPS
public static final boolean TRACE_MAPS
- See Also:
- Constant Field Values
TRACE_TIMES
public static final boolean TRACE_TIMES
- See Also:
- Constant Field Values
USE_CHA
public static final boolean USE_CHA
- See Also:
- Constant Field Values
DO_INLINING
public static final boolean DO_INLINING
- See Also:
- Constant Field Values
sccEdges
java.util.Map sccEdges
DEFAULT_NODE_COUNT
public static final int DEFAULT_NODE_COUNT
- The default initial node count. Smaller values save memory for
smaller problems, larger values save the time to grow the node tables
on larger problems.
- See Also:
- Constant Field Values
DEFAULT_CACHE_SIZE
public static final int DEFAULT_CACHE_SIZE
- The absolute maximum number of variables that we will ever use
in the BDD. Smaller numbers will be more efficient, larger
numbers will allow larger programs to be analyzed.
- See Also:
- Constant Field Values
bdd
private final org.sf.javabdd.BDDFactory bdd
- Singleton BDD object that provides access to BDD functions.
cg
private final CallGraph cg
- Initial call graph that we use to seed the analysis.
VARBITS
public static final int VARBITS
- See Also:
- Constant Field Values
HEAPBITS
public static final int HEAPBITS
- See Also:
- Constant Field Values
FIELDBITS
public static final int FIELDBITS
- See Also:
- Constant Field Values
CLASSBITS
public static final int CLASSBITS
- See Also:
- Constant Field Values
domainBits
int[] domainBits
domainSpos
int[] domainSpos
V1
org.sf.javabdd.BDDDomain V1
V2
org.sf.javabdd.BDDDomain V2
V3
org.sf.javabdd.BDDDomain V3
FD
org.sf.javabdd.BDDDomain FD
H1
org.sf.javabdd.BDDDomain H1
H2
org.sf.javabdd.BDDDomain H2
T1
org.sf.javabdd.BDDDomain T1
T2
org.sf.javabdd.BDDDomain T2
T3
org.sf.javabdd.BDDDomain T3
T4
org.sf.javabdd.BDDDomain T4
V1ToV2
org.sf.javabdd.BDDPairing V1ToV2
V1ToV3
org.sf.javabdd.BDDPairing V1ToV3
V2ToV1
org.sf.javabdd.BDDPairing V2ToV1
V2ToV3
org.sf.javabdd.BDDPairing V2ToV3
V3ToV1
org.sf.javabdd.BDDPairing V3ToV1
V3ToV2
org.sf.javabdd.BDDPairing V3ToV2
H1ToH2
org.sf.javabdd.BDDPairing H1ToH2
H2ToH1
org.sf.javabdd.BDDPairing H2ToH1
T2ToT1
org.sf.javabdd.BDDPairing T2ToT1
aC
org.sf.javabdd.BDD aC
vC
org.sf.javabdd.BDD vC
cC
org.sf.javabdd.BDD cC
typeFilter
org.sf.javabdd.BDD typeFilter
change
boolean change
visitedMethods
java.util.HashSet visitedMethods
callSiteToTargets
java.util.HashMap callSiteToTargets
callGraphEdges
java.util.HashSet callGraphEdges
variableIndexMap
CSBDDPointerAnalysis.IndexMap variableIndexMap
heapobjIndexMap
CSBDDPointerAnalysis.IndexMap heapobjIndexMap
fieldIndexMap
CSBDDPointerAnalysis.IndexMap fieldIndexMap
typeIndexMap
CSBDDPointerAnalysis.IndexMap typeIndexMap
last_typeIndex
int last_typeIndex
bddSummaries
java.util.Map bddSummaries
CSBDDPointerAnalysis
public CSBDDPointerAnalysis(CallGraph cg)
CSBDDPointerAnalysis
public CSBDDPointerAnalysis(CallGraph cg,
int nodeCount,
int cacheSize)
main
public static void main(java.lang.String[] args)
go
void go(java.util.Collection roots)
dumpResults
void dumpResults()
reset
void reset()
makeVarOrdering
int[] makeVarOrdering(boolean reverseLocal,
java.lang.String ordering)
fillInVarIndices
int fillInVarIndices(org.sf.javabdd.BDDDomain[] doms,
int domainIndex,
int numDomains,
int[][] localOrders,
int bitIndex,
int[] varorder)
getVariableMap
void getVariableMap(int[] map,
org.sf.javabdd.BDDDomain[] doms)
remapping
void remapping(int[] varorder,
int[] maps)
getIndexMap
CSBDDPointerAnalysis.IndexMap getIndexMap(org.sf.javabdd.BDDDomain d)
getVariableIndex
int getVariableIndex(MethodSummary.Node dest)
getHeapobjIndex
int getHeapobjIndex(MethodSummary.Node site)
getFieldIndex
int getFieldIndex(Clazz.jq_Field f)
getTypeIndex
int getTypeIndex(Clazz.jq_Reference f)
getVariable
MethodSummary.Node getVariable(int index)
getHeapobj
MethodSummary.Node getHeapobj(int index)
getField
Clazz.jq_Field getField(int index)
getType
Clazz.jq_Reference getType(int index)
addClassType
public void addClassType(Clazz.jq_Reference type)
addAllocType
public void addAllocType(MethodSummary.Node site,
Clazz.jq_Reference type)
addVarType
public void addVarType(MethodSummary.Node var,
Clazz.jq_Reference type)
calculateTypeHierarchy
void calculateTypeHierarchy()
calculateTypeFilter
public void calculateTypeFilter()
getVariableType
Clazz.jq_Reference getVariableType(int index)
getNewVariableIndex
int getNewVariableIndex(ProgramLocation mc,
Clazz.jq_Method callee,
int p)
getBDDSummary
CSBDDPointerAnalysis.BDDMethodSummary getBDDSummary(MethodSummary ms)