|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See:
Description
| Class Summary | |
|---|---|
| BackwardDataFlowBasicBlockVisitor | BackwardDataFlowBasicBlockVisitor |
| BackwardDataFlowQuadVisitor | BackwardDataFlowQuadVisitor |
| CachingLiveTemps | CachingLiveTemps is an extension of
LiveTemps that keeps a cache of the recent results
that it calculated. |
| DataFlowBasicBlockVisitor | DataFlowBasicBlockVisitor is a specialized
BasicBlockVisitor for performing data flow analysis on
a set of BasicBlock. |
| DataFlowQuadVisitor | DataFlowQuadVisitor |
| ForwardDataFlowBasicBlockVisitor | ForwardDataFlowBasicBlockVisitor |
| ForwardDataFlowQuadVisitor | ForwardDataFlowQuadVisitor |
| InstrSolver | InstrSolver |
| LiveTemps | LiveTemps is an extension of LiveVars for
performing liveness analysis on Temps. |
| LiveVars | LiveVars performs Liveness Analysis for the variables
in the HCodes passed to it. |
| LiveVars.BBVisitor | |
| LiveVars.BBVisitor.LiveVarInfo | |
| ReachingDefs | ReachingDefs is a ForwardDataFlowBasicBlockVisitor
for performing reaching definitions analysis on any IR that implements
HCodeElement, CFGraphable, and
UseDefable. |
| ReachingHCodeElements | ReachingHCodeElements is an extension of
ReachingDefs for performing reaching definitions analysis on
HCodeElementss. |
| ReversePostOrderEnumerator | |
| ReversePostOrderIterator | |
| Solver | Solver contains static methods to find the fixed point
of a set of data-flow equations. |
| SpaceHeavyLiveTemps | SpaceHeavyLiveTemps is an extension of
LiveTemps that keeps ALL of the results of the queries
that it has calculated alive. |
| TreeSolver | A blatant rip-off of Whaley's QuadSolver class, used to
solve data flow equations (baby). |
Provides the classes for performing Data-Flow Analysis on a number of Intermediate Representations.
The purpose of data-flow analysis is to provide global information about how a procedure (or a larger segment of a program) manipulates its data. For example, constant-propagation analysis seeks to determine whether all asssignments to a particular variable that may provide the value of that variable at some particular point necessarily give it the same constant value. If so, a use of the variable at that point can be replaced by the constant.Muchnick, Steven S., Advanced Compiler Design & Implementation, pg. 217
The design of the DataFlow package implements data-flow analysis passes in terms of three parts: a flowgraph of nodes, a node-visitor to calculate flow functions defined according to a lattice, and a solver to find a maximum fixed point of the lattice.
Generally the nodes of an analysis will be BasicBlock objects, and the corresponding visitor will be an subclass of BasicBlockVisitor.
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||