Package harpoon.Analysis.Companions

This package contains code to implement the "Points-To Analysis with Companion Objects" described in my whitepaper.

See:
          Description

Interface Summary
SingularOracle<HCE extends HCodeElement> A SingularOracle provides information about singularity and mutual singularity of static values.
 

Class Summary
DataFlowSolver<N extends Graph.Node<N,E>,E extends Graph.Edge<N,E>,FACT> The DataFlowSolver class provides a parameterized framework for building simple data flow analyses for various IRs.
DataFlowSolver.Forward<N extends Graph.Node<N,E>,E extends Graph.Edge<N,E>,FACT> DataFlowSolver.Forward is a dataflow solver for forward dataflow analyses.
QuadFlowGraph QuadFlowGraph is an expanded flow graphs for Quads, where additional nodes are added before PHI and after SIGMA nodes to make the dataflow corresponding to the phi and sigma functions easier to express.
SingularFinder SingularFinder is an implementation of SingularOracle for quad IRs.
StaticValue<HCE extends HCodeElement> A StaticValue is a pair of variable and statement, which represents all the variables possible values at the given program point.
 

Package harpoon.Analysis.Companions Description

This package contains code to implement the "Points-To Analysis with Companion Objects" described in my whitepaper.

This pointer analysis uses companion properties of objects to obtain greater precision analyzing collections and iterators.

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