Package edu.cmu.cs.crystal.flow

This package is used for flow analyses.

See:
          Description

Interface Summary
IAbstractLatticeOperations<LE,N> Analysis writers do not implement this interface directly; instead, they implement an extending interface that instantiates the node type parameter, N of this interface.
IBranchSensitiveTransferFunction<LE> Interface for defining branch-sensitive flow analyses.
IFlowAnalysis<LE> All flow analyses must be able to return the information defined by this interface.
IFlowAnalysisDefinition<LE> This interface contains operations common to any transfer function accepted by Crystal's flow analysis framework: A direction: IFlowAnalysisDefinition.getAnalysisDirection() Lattice operations: #createLatticeOperations(MethodDeclaration) Entry lattice value: IFlowAnalysisDefinition.createEntryValue(MethodDeclaration) These will be called once whenever another method needs to be analyzed.
ILabel A label is a named edge on a control flow graph.
ILatticeOperations<LE> Implement this interface to provide typical lattice operations.
IResult<LE> Interface for mapping branch labels to analysis information.
ITransferFunction<LE> Interface for defining standard flow analyses.
 

Class Summary
BooleanLabel A boolean label is a label which is either true or false.
ExceptionalLabel A label for edges that are on exceptional control flow.
FlowAnalysis<LE> This class implements a standard flow analysis.
IteratorLabel A label for control flow where the branching flow is due to an iterator, for example, in an enhanced for loop.
LabeledResult<LE> Maps each label to a unique value.
LabeledSingleResult<LE> This class maps a set of known labels to a single lattice element.
MotherFlowAnalysis<LE> Abstract base class for flow analyses that implements a worklist algorithm and provides various methods to access analysis results.
NormalLabel A normal label occurs from non-branching, non-exceptional control flow.
SingleResult<LE> This is a degenerate result that maps all labels to a single lattice element and only knows a single label, NormalLabel.
SwitchLabel A switch label occurs from the switch control flow.
 

Enum Summary
AnalysisDirection This enumeration is used to specify the direction of a flow analysis.
SingletonLatticeElement This is a degenerate lattice element class with exactly one element in it.
 

Package edu.cmu.cs.crystal.flow Description

This package is used for flow analyses. There are five type hierarchies to notice here: