Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Compil3r.Quad
Class ContextSensitiveBDD  view ContextSensitiveBDD download ContextSensitiveBDD.java

java.lang.Object
  extended byCompil3r.Quad.ContextSensitiveBDD

public class ContextSensitiveBDD
extends java.lang.Object

Version:
$Id: ContextSensitiveBDD.java,v 1.7 2003/06/17 02:14:52 joewhaley Exp $

Nested Class Summary
 class ContextSensitiveBDD.BDDMethodSummary
           
 
Field Summary
private  org.sf.javabdd.BDDFactory bdd
          Singleton BDD object that provides access to BDD functions.
(package private)  org.sf.javabdd.BDDDomain CS
          BDD domains that we use in the analysis.
(package private)  int[] dBits
          Default sizes of the domains defined above.
static int DEFAULT_CACHE_SIZE
          The absolute maximum number of variables that we will ever use in the BDD.
static int DEFAULT_NODE_COUNT
          The default initial node count.
(package private)  org.sf.javabdd.BDDDomain FD
          BDD domains that we use in the analysis.
(package private)  Util.Collections.IndexMap fieldIndexMap
           
(package private)  org.sf.javabdd.BDDDomain H1
          BDD domains that we use in the analysis.
(package private)  org.sf.javabdd.BDDPairing H1ToH2
           
(package private)  org.sf.javabdd.BDDDomain H2
          BDD domains that we use in the analysis.
(package private)  org.sf.javabdd.BDDPairing H2ToH1
           
(package private)  Util.Collections.IndexMap heapobjIndexMap
           
(package private)  CallGraph initial_cg
           
(package private)  Util.Collections.IndexMap methodIndexMap
           
(package private)  java.util.LinkedHashMap summaries
           
(package private)  org.sf.javabdd.BDDDomain T1
          Temporary domains that overlap with other domains.
(package private)  org.sf.javabdd.BDDDomain T2
          Temporary domains that overlap with other domains.
(package private)  org.sf.javabdd.BDDPairing T2ToT1
           
(package private)  Util.Collections.IndexMap targetIndexMap
           
static boolean TRACE
           
static boolean TRACE_INST
           
(package private)  Util.Collections.IndexMap typeIndexMap
           
(package private)  org.sf.javabdd.BDDDomain V1
          BDD domains that we use in the analysis.
(package private)  org.sf.javabdd.BDDPairing V1ToV2
          Cached domain pairings for replace() operations.
(package private)  org.sf.javabdd.BDDPairing V1ToV3
           
(package private)  org.sf.javabdd.BDDDomain V2
          BDD domains that we use in the analysis.
(package private)  org.sf.javabdd.BDDPairing V2ToV1
           
(package private)  org.sf.javabdd.BDDPairing V2ToV4
           
(package private)  org.sf.javabdd.BDDDomain V3
          BDD domains that we use in the analysis.
(package private)  org.sf.javabdd.BDDPairing V3ToV1
           
(package private)  org.sf.javabdd.BDDPairing V3ToV2
           
(package private)  org.sf.javabdd.BDDPairing V3ToV4
           
(package private)  org.sf.javabdd.BDDDomain V4
          BDD domains that we use in the analysis.
(package private)  org.sf.javabdd.BDDPairing V4ToV3
           
(package private)  Util.Collections.IndexMap variableIndexMap
           
(package private)  Util.Collections.HashWorklist worklist
           
 
Constructor Summary
ContextSensitiveBDD()
          Default constructor and initialization.
ContextSensitiveBDD(int nodeCount, int cacheSize)
          Constructor and initialization.
 
Method Summary
 void dumpResults()
           
(package private)  void fdd_printset_rec(java.io.PrintStream ofile, org.sf.javabdd.BDD r, int[] set)
           
(package private)  void fdd_printset_rec(java.lang.String type, java.io.PrintStream ofile, org.sf.javabdd.BDD r, int[] set)
           
(package private)  boolean[] fdddec2bin(int var, int val)
           
(package private)  org.sf.javabdd.BDDDomain getDomain(java.lang.String s)
          Returns the named domain.
(package private)  java.lang.String getElementName(java.lang.String desc, int index)
           
(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)  Clazz.jq_InstanceMethod getMethod(int index)
           
(package private)  int getMethodIndex(Clazz.jq_InstanceMethod f)
           
(package private)  Clazz.jq_InstanceMethod getTarget(int index)
           
(package private)  int getTargetIndex(Clazz.jq_InstanceMethod f)
           
(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)
           
 CallGraph go(java.util.Collection roots)
           
static void main(java.lang.String[] args)
           
(package private)  void printSet(java.lang.String desc, org.sf.javabdd.BDD b, java.lang.String type)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRACE

public static final boolean TRACE
See Also:
Constant Field Values

TRACE_INST

public static final boolean TRACE_INST
See Also:
Constant Field Values

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.


V1

org.sf.javabdd.BDDDomain V1
BDD domains that we use in the analysis.


V2

org.sf.javabdd.BDDDomain V2
BDD domains that we use in the analysis.


V3

org.sf.javabdd.BDDDomain V3
BDD domains that we use in the analysis.


V4

org.sf.javabdd.BDDDomain V4
BDD domains that we use in the analysis.


FD

org.sf.javabdd.BDDDomain FD
BDD domains that we use in the analysis.


H1

org.sf.javabdd.BDDDomain H1
BDD domains that we use in the analysis.


H2

org.sf.javabdd.BDDDomain H2
BDD domains that we use in the analysis.


CS

org.sf.javabdd.BDDDomain CS
BDD domains that we use in the analysis.


dBits

int[] dBits
Default sizes of the domains defined above.


T2

org.sf.javabdd.BDDDomain T2
Temporary domains that overlap with other domains.


T1

org.sf.javabdd.BDDDomain T1
Temporary domains that overlap with other domains.


V1ToV2

org.sf.javabdd.BDDPairing V1ToV2
Cached domain pairings for replace() operations.


V2ToV1

org.sf.javabdd.BDDPairing V2ToV1

V1ToV3

org.sf.javabdd.BDDPairing V1ToV3

V2ToV4

org.sf.javabdd.BDDPairing V2ToV4

V3ToV1

org.sf.javabdd.BDDPairing V3ToV1

V3ToV2

org.sf.javabdd.BDDPairing V3ToV2

V3ToV4

org.sf.javabdd.BDDPairing V3ToV4

V4ToV3

org.sf.javabdd.BDDPairing V4ToV3

H1ToH2

org.sf.javabdd.BDDPairing H1ToH2

H2ToH1

org.sf.javabdd.BDDPairing H2ToH1

T2ToT1

org.sf.javabdd.BDDPairing T2ToT1

summaries

java.util.LinkedHashMap summaries

worklist

Util.Collections.HashWorklist worklist

initial_cg

CallGraph initial_cg

variableIndexMap

Util.Collections.IndexMap variableIndexMap

heapobjIndexMap

Util.Collections.IndexMap heapobjIndexMap

fieldIndexMap

Util.Collections.IndexMap fieldIndexMap

typeIndexMap

Util.Collections.IndexMap typeIndexMap

methodIndexMap

Util.Collections.IndexMap methodIndexMap

targetIndexMap

Util.Collections.IndexMap targetIndexMap
Constructor Detail

ContextSensitiveBDD

public ContextSensitiveBDD()
Default constructor and initialization.


ContextSensitiveBDD

public ContextSensitiveBDD(int nodeCount,
                           int cacheSize)
Constructor and initialization.

Method Detail

getDomain

org.sf.javabdd.BDDDomain getDomain(java.lang.String s)
Returns the named domain.


main

public static void main(java.lang.String[] args)

dumpResults

public void dumpResults()

go

public CallGraph go(java.util.Collection roots)

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)

getMethodIndex

int getMethodIndex(Clazz.jq_InstanceMethod f)

getTargetIndex

int getTargetIndex(Clazz.jq_InstanceMethod 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)

getMethod

Clazz.jq_InstanceMethod getMethod(int index)

getTarget

Clazz.jq_InstanceMethod getTarget(int index)

getElementName

java.lang.String getElementName(java.lang.String desc,
                                int index)

printSet

void printSet(java.lang.String desc,
              org.sf.javabdd.BDD b,
              java.lang.String type)

fdd_printset_rec

void fdd_printset_rec(java.lang.String type,
                      java.io.PrintStream ofile,
                      org.sf.javabdd.BDD r,
                      int[] set)

fdd_printset_rec

void fdd_printset_rec(java.io.PrintStream ofile,
                      org.sf.javabdd.BDD r,
                      int[] set)

fdddec2bin

boolean[] fdddec2bin(int var,
                     int val)