harpoon.Analysis
Class PointsToAnalysis<HCE extends HCodeElement,NODE extends PointsToAnalysis.Node<HCE>,CONTEXT extends Context>

java.lang.Object
  extended by harpoon.Analysis.PointsToAnalysis<HCE,NODE,CONTEXT>

public abstract class PointsToAnalysis<HCE extends HCodeElement,NODE extends PointsToAnalysis.Node<HCE>,CONTEXT extends Context>
extends Object

The PointsToAnalysis interface encapsulates a points-to pointer analysis algorithm, allowing transformation and analysis code to use the results of a PointsToAnalysis w/o knowing the details of its implementation.

Version:
$Id: PointsToAnalysis.java,v 1.4 2004/02/08 01:49:03 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>

Nested Class Summary
static interface PointsToAnalysis.Node<HCE extends HCodeElement>
          PointsToAnalysis.Node is just a marker interface for the nodes in the points-to graph returned by the PointsToAnalysis interface.
 
Constructor Summary
PointsToAnalysis()
           
 
Method Summary
abstract  Set<NODE> pointsTo(HCE defsite, Temp t)
          Provides points-to information valid for all contexts in which Temp t defined at defsite is used or defined.
abstract  Set<NODE> pointsTo(HCE defsite, Temp t, CONTEXT c)
          Provies points-to information valid only for a use of t (defined at defsite in the specific Context c.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PointsToAnalysis

public PointsToAnalysis()
Method Detail

pointsTo

public abstract Set<NODE> pointsTo(HCE defsite,
                                   Temp t)
Provides points-to information valid for all contexts in which Temp t defined at defsite is used or defined. If t1 defined at d1 can point to the same object as t2 defined at d2, then pointsTo(d1,t1) and pointsTo(d2,t2) will have a non-empty intersection.


pointsTo

public abstract Set<NODE> pointsTo(HCE defsite,
                                   Temp t,
                                   CONTEXT c)
Provies points-to information valid only for a use of t (defined at defsite in the specific Context c. You may be required to use the same Context implementation as the analysis. If t1 defined at d1 can, in context c1, point to the same object as t2 defined at d2 does in context c2, then pointsTo(d1,t1,c1) and pointsTo(d2,t2,c2) will have a non-empty intersection.