Class PointsTo
- java.lang.Object
-
- com.ensoftcorp.open.pointsto.analysis.PointsTo
-
- Direct Known Subclasses:
JavaPointsTo
,JimplePointsTo
public abstract class PointsTo extends java.lang.Object
An abstract class defining the features that a points-to analyzer should implement.- Author:
- Ben Holland
-
-
Field Summary
Fields Modifier and Type Field Description static long
UPDATE_INTERVAL
-
Constructor Summary
Constructors Constructor Description PointsTo()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
addAliasAddress(com.ensoftcorp.atlas.core.db.graph.Node node, java.lang.Integer address)
Removes an alias address from the alias setabstract void
dispose()
Signals that the points to analysis results no longer need to be maintained by the analysisabstract com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node>
getAddressedNodes()
Returns a set of all addressed nodesabstract java.util.HashSet<java.lang.Integer>
getAliasAddresses()
Returns a set of alias addressesabstract java.util.HashSet<java.lang.Integer>
getAliasAddresses(com.ensoftcorp.atlas.core.db.graph.Node node)
Returns a set of alias addresses for the given nodeabstract java.util.HashSet<java.lang.Integer>
getArrayMemoryModelAliases(java.lang.Integer address)
Returns the mapping of arrays to the array's componentsabstract java.util.HashSet<java.lang.Integer>
getArrayMemoryModels()
Returns the array memory model addressesabstract com.ensoftcorp.atlas.core.db.graph.Graph
getInferredDataFlowGraph()
Returns the inferred data flow graph as the results of the fixed point analysisabstract com.ensoftcorp.atlas.core.db.graph.Node
getInstantiation(java.lang.Integer address)
Returns the mapping of an address to its corresponding instantiationabstract com.ensoftcorp.atlas.core.db.graph.Node
getType(java.lang.Integer address)
Returns the mapping of an address to its corresponding static typeboolean
hasRun()
Returns true if the points-to analysis has completedboolean
isDisposed()
abstract void
removeAliasAddress(com.ensoftcorp.atlas.core.db.graph.Node node, java.lang.Integer address)
Adds an alias address to the alias setdouble
run()
Runs the points to analysis (if it hasn't been run already) and returns the time in milliseconds to complete the analysis
-
-
-
Field Detail
-
UPDATE_INTERVAL
public static final long UPDATE_INTERVAL
- See Also:
- Constant Field Values
-
-
Method Detail
-
hasRun
public boolean hasRun()
Returns true if the points-to analysis has completed- Returns:
-
run
public double run()
Runs the points to analysis (if it hasn't been run already) and returns the time in milliseconds to complete the analysis- Returns:
-
getArrayMemoryModelAliases
public abstract java.util.HashSet<java.lang.Integer> getArrayMemoryModelAliases(java.lang.Integer address)
Returns the mapping of arrays to the array's components- Returns:
-
getArrayMemoryModels
public abstract java.util.HashSet<java.lang.Integer> getArrayMemoryModels()
Returns the array memory model addresses- Returns:
-
getAliasAddresses
public abstract java.util.HashSet<java.lang.Integer> getAliasAddresses()
Returns a set of alias addresses- Parameters:
node
-- Returns:
-
getAliasAddresses
public abstract java.util.HashSet<java.lang.Integer> getAliasAddresses(com.ensoftcorp.atlas.core.db.graph.Node node)
Returns a set of alias addresses for the given node- Parameters:
node
-- Returns:
-
addAliasAddress
public abstract void addAliasAddress(com.ensoftcorp.atlas.core.db.graph.Node node, java.lang.Integer address)
Removes an alias address from the alias set- Parameters:
node
-
-
removeAliasAddress
public abstract void removeAliasAddress(com.ensoftcorp.atlas.core.db.graph.Node node, java.lang.Integer address)
Adds an alias address to the alias set- Parameters:
node
-
-
getInstantiation
public abstract com.ensoftcorp.atlas.core.db.graph.Node getInstantiation(java.lang.Integer address)
Returns the mapping of an address to its corresponding instantiation- Returns:
-
getType
public abstract com.ensoftcorp.atlas.core.db.graph.Node getType(java.lang.Integer address)
Returns the mapping of an address to its corresponding static type- Returns:
-
getAddressedNodes
public abstract com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node> getAddressedNodes()
Returns a set of all addressed nodes- Returns:
-
getInferredDataFlowGraph
public abstract com.ensoftcorp.atlas.core.db.graph.Graph getInferredDataFlowGraph()
Returns the inferred data flow graph as the results of the fixed point analysis- Returns:
-
isDisposed
public boolean isDisposed()
-
dispose
public abstract void dispose()
Signals that the points to analysis results no longer need to be maintained by the analysis
-
-