harpoon.Analysis.PA2
Class InterProcAnalysisResult

java.lang.Object
  extended by harpoon.Analysis.PA2.InterProcAnalysisResult
Direct Known Subclasses:
FullAnalysisResult, InterProcAnalysisResult.Chained

public abstract class InterProcAnalysisResult
extends Object

InterProcAnalysisResult models the analysis result that (1) is computed for the end of a method m; and (2) that is required in the inter-procedural analysis in order to treat calls to m. The information from an object of this class is a method specification, from the point of view of the pointer analysis.

Version:
$Id: InterProcAnalysisResult.java,v 1.3 2005/09/05 16:47:19 salcianu Exp $
Author:
Alexandru Salcianu <salcianu@alum.mit.edu>

Nested Class Summary
static class InterProcAnalysisResult.Chained
           
 
Constructor Summary
InterProcAnalysisResult()
           
 
Method Summary
 Set<PANode> eomAllEsc()
           
abstract  Set<PANode> eomAllGblEsc()
          All nodes that escape *globally* at the end of the method.
abstract  Set<PANode> eomDirGblEsc()
          Nodes that escape *globally* at the end of the method and are relevant for the inter-proc analysis (we try to avoid including here nodes that are unreachable from the caller).
abstract  PAEdgeSet eomI()
          Inside edges at the end of the method.
abstract  PAEdgeSet eomO()
          Outside edges at the end of the method.
 Set<jpaul.DataStructs.Pair<PANode,HField>> eomWrites()
          Abstract fields written by the method and its transitive callees.
abstract  Set<PANode> ex()
          Nodes thrown from the method as exceptions.
 Iterable<PANode> getAllNodes()
           
 void invalidateCaches()
          Certain methods of this object may use caching for internal performances.
abstract  Set<PANode> ret()
          Nodes returned from the method.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InterProcAnalysisResult

public InterProcAnalysisResult()
Method Detail

eomI

public abstract PAEdgeSet eomI()
Inside edges at the end of the method.


invalidateCaches

public void invalidateCaches()
Certain methods of this object may use caching for internal performances. However, every time one of the components (e.g., the set of inside edges) changes, the programmer needs to invoke this method.


eomO

public abstract PAEdgeSet eomO()
Outside edges at the end of the method.


eomDirGblEsc

public abstract Set<PANode> eomDirGblEsc()
Nodes that escape *globally* at the end of the method and are relevant for the inter-proc analysis (we try to avoid including here nodes that are unreachable from the caller).


eomAllGblEsc

public abstract Set<PANode> eomAllGblEsc()
All nodes that escape *globally* at the end of the method. Honestly, this is not necessary in the inter-procedural analysis (only eomDirGblEsc is); still, this class seemed the most appropriate location for this method.


eomAllEsc

public Set<PANode> eomAllEsc()

ret

public abstract Set<PANode> ret()
Nodes returned from the method.


ex

public abstract Set<PANode> ex()
Nodes thrown from the method as exceptions.


toString

public String toString()
Overrides:
toString in class Object

getAllNodes

public Iterable<PANode> getAllNodes()

eomWrites

public Set<jpaul.DataStructs.Pair<PANode,HField>> eomWrites()
Abstract fields written by the method and its transitive callees. Relevant only if Flags.RECORD_WRITES is turned on.