envgen.analysis.stat
Class PointsToAnalysisMain

java.lang.Object
  |
  +--envgen.analysis.stat.StaticAnalysis
        |
        +--envgen.analysis.stat.PointsToAnalysisMain
All Implemented Interfaces:
IApproach

public class PointsToAnalysisMain
extends StaticAnalysis
implements IApproach

Walks over methods and performs points-to analysis for each unvisited method.


Field Summary
(package private)  AnalysisResults analysisResults
           
(package private)  int debug
          Set to print debugging messages.
 
Fields inherited from class envgen.analysis.stat.StaticAnalysis
callGraph, chainLength, dump, packageAnalysis, packageName, unitAnalysis, unitStaticFields, unitTable
 
Constructor Summary
PointsToAnalysisMain(java.util.HashMap unitTable, EnvCallGraph callGraph)
           
 
Method Summary
 Assumptions acquireAssumptions()
           
 void analyzeAliases(soot.SootMethod externalMethod, java.util.HashSet visited)
          Interprocedural, flow-sensitive, parameterized alias analysis.
 MultiSet getAllPossibleReturns(soot.SootMethod sm)
          Builds a table assummming that sm can return any location of our interest that matches the return type of the method.
 AnalysisResults getPointsToResults()
           
 MultiSet getReturnLocations(soot.SootMethod externalMethod, soot.toolkits.graph.CompleteUnitGraph cfg, PointsToAnalysis alias)
          Builds a list of sets of return values for externalMethod.
 void performPointsToAnalysis(java.util.List markedMethods)
          For each of the methods in the environment records a set of unit data side-effects.
 
Methods inherited from class envgen.analysis.stat.StaticAnalysis
addField, getCallGraph, getClass, getExtendedLoc, getExtendedLoc, getMappedArg, getMappedLocation, getMappedLocs, getMappedLocs, getMappedPathParam, getMappedPathParam, getMappedPathParam, getMappedReturnLocs, getMappedTopParam, getMappedVals, getStaticFields, getValues, isSingularLoc, isSubType, isUnitSuperType, processRefOrScalarType, processRefType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

analysisResults

AnalysisResults analysisResults

debug

int debug
Set to print debugging messages.

Constructor Detail

PointsToAnalysisMain

public PointsToAnalysisMain(java.util.HashMap unitTable,
                            EnvCallGraph callGraph)
Method Detail

acquireAssumptions

public Assumptions acquireAssumptions()
Specified by:
acquireAssumptions in interface IApproach

performPointsToAnalysis

public void performPointsToAnalysis(java.util.List markedMethods)
For each of the methods in the environment records a set of unit data side-effects.


analyzeAliases

public void analyzeAliases(soot.SootMethod externalMethod,
                           java.util.HashSet visited)
Interprocedural, flow-sensitive, parameterized alias analysis.


getAllPossibleReturns

public MultiSet getAllPossibleReturns(soot.SootMethod sm)
Builds a table assummming that sm can return any location of our interest that matches the return type of the method. Is used to resolve cycles in the alias analysis.


getReturnLocations

public MultiSet getReturnLocations(soot.SootMethod externalMethod,
                                   soot.toolkits.graph.CompleteUnitGraph cfg,
                                   PointsToAnalysis alias)
Builds a list of sets of return values for externalMethod. If return sensitivity is not required, then all sets may be collapsed into one set.


getPointsToResults

public AnalysisResults getPointsToResults()