edu.cmu.cs.crystal.flow
Interface IFlowAnalysisDefinition<LE>

Type Parameters:
LE - Analysis information being tracked as "lattice elements".
All Known Subinterfaces:
IBranchSensitiveTransferFunction<LE>, ITACBranchSensitiveTransferFunction<LE>, ITACTransferFunction<LE>, ITransferFunction<LE>
All Known Implementing Classes:
AbstractingTransferFunction, AbstractTACBranchSensitiveTransferFunction, ConstantTransferFunction, LiveVariableTransferFunction, MayAliasTransferFunction

public interface IFlowAnalysisDefinition<LE>

This interface contains operations common to any transfer function accepted by Crystal's flow analysis framework:

These will be called once whenever another method needs to be analyzed. Extending interfaces will define methods for transferring over a specific kind of node, such as AST nodes.

Author:
Kevin Bierhoff

Method Summary
 LE createEntryValue(MethodDeclaration method)
          Creates entry analysis information for analyzing a given method.
 AnalysisDirection getAnalysisDirection()
          Informs Crystal in which direction to perform the analysis.
 ILatticeOperations<LE> getLatticeOperations()
          Gets the lattice operations for computing flow analysis results for a given method.
 

Method Detail

getLatticeOperations

ILatticeOperations<LE> getLatticeOperations()
Gets the lattice operations for computing flow analysis results for a given method. Crystal uses the result of this method to compare and join intermediate results.

Returns:
lattice operations to be used for computing flow analysis results for a given method.

createEntryValue

LE createEntryValue(MethodDeclaration method)
Creates entry analysis information for analyzing a given method. Crystal's flow analysis uses the result of this method as the incoming analysis information to transfer over the first (or last, for backwards analyses) instruction in the given method.

Parameters:
method - the method to create the lattice operations for
Returns:
entry analysis information for analyzing a given method.

getAnalysisDirection

AnalysisDirection getAnalysisDirection()
Informs Crystal in which direction to perform the analysis.

Returns:
the direction of the analysis; never null.