chord.analyses.alias
Class CIAliasAnalysis

java.lang.Object
  extended by chord.project.analyses.JavaAnalysis
      extended by chord.analyses.alias.CIAliasAnalysis
All Implemented Interfaces:
ITask

public class CIAliasAnalysis
extends JavaAnalysis

Context-insensitive may alias analysis.

Author:
Mayur Naik (mhn@cs.stanford.edu)

Field Summary
 
Fields inherited from class chord.project.analyses.JavaAnalysis
consumes, controls, name, produces
 
Constructor Summary
CIAliasAnalysis()
           
 
Method Summary
 void free()
          Frees relations used by this program analysis if they are in memory.
 CIObj pointsTo(CIObj obj, joeq.Class.jq_Field field)
          Provides the abstract object to which a given instance field of a given abstract object may point.
 CIObj pointsTo(joeq.Class.jq_Field field)
          Provides the abstract object to which a given static field may point.
 CIObj pointsTo(joeq.Compiler.Quad.RegisterFactory.Register var)
          Provides the abstract object to which a given local variable may point.
 void run()
          Executes this analysis in a "classic" project.
 
Methods inherited from class chord.project.analyses.JavaAnalysis
getName, run, setName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CIAliasAnalysis

public CIAliasAnalysis()
Method Detail

run

public void run()
Description copied from interface: ITask
Executes this analysis in a "classic" project. This method must usually not be called directly. The correct way to call it is to call ClassicProject.runTask(String) or ClassicProject.runTask(ITask), providing this analysis either by its name or its object.

Specified by:
run in interface ITask
Overrides:
run in class JavaAnalysis

pointsTo

public CIObj pointsTo(joeq.Compiler.Quad.RegisterFactory.Register var)
Provides the abstract object to which a given local variable may point.

Parameters:
var - A local variable.
Returns:
The abstract object to which the given local variable may point.

pointsTo

public CIObj pointsTo(joeq.Class.jq_Field field)
Provides the abstract object to which a given static field may point.

Parameters:
field - A static field.
Returns:
The abstract object to which the given static field may point.

pointsTo

public CIObj pointsTo(CIObj obj,
                      joeq.Class.jq_Field field)
Provides the abstract object to which a given instance field of a given abstract object may point.

Parameters:
obj - An abstract object.
field - An instance field.
Returns:
The abstract object to which the given instance field of the given abstract object may point.

free

public void free()
Frees relations used by this program analysis if they are in memory.

This method must be called after clients are done exercising the interface of this analysis.