BackwardDataFlowHelper
|
|
ConstantPropagation<'L>
|
The constant propagation framework, which is a modified version of sparse
conditional constant propagation of Wegman et al.
|
CPState
|
|
CPState<'L>
|
Constant propagation analysis state.
|
DataFlowAnalysis<'L, 'V>
|
Data-flow analysis framework. 'L is a lattice, 'V is a vertex data type of a
graph.
|
DataFlowChain (Module)
|
|
DataFlowChain (Type)
|
|
DataFlowDirection
|
Either forward or backward analysis.
|
DataFlowHelper
|
|
IConstantPropagationCore<'L>
|
The core interface of a Constant Propagation (CP) algorithm.
|
LowUIRReachingDefinitions
|
Reaching definition analysis with a LowUIR-based CFG.
|
ReachingDefinitions<'Expr, 'BBL>
|
|
SCPTransfer
|
|
SCPValue (Module)
|
|
SCPValue (Type)
|
Thunk and Pointer are the only special kind of SCPValue, which should not
be invalidated across function calls. This is to correctly track GOT
pointers.
|
SparseConstantPropagation
|
The most basic constant propagation algorithm, which can track stack-based
memory objects and GOT pointers. The reader is to enable reading data
from external sections, e.g., rodata. If the reader is not given, we simply
ignore such global data.
|
SPTransfer
|
|
SPValue (Module)
|
|
SPValue (Type)
|
StackPointerPropagation values.
|
SSAMemID
|
An ID of an SSA memory instance.
|
StackPointerPropagation
|
This is a variant of the SparseConstantPropagation, which only tracks
the stack pointer used in a function. We initiate the stack pointer with a
constant first, and check how it propagates within the function.
StackPointerPropagation is generally much faster than
SparseConstantPropagation due to its simplicity.
|
TopologicalDataFlowAnalysis<'L, 'V>
|
Classic data-flow analysis with topological worklist algorithm.
|
UntouchedTag
|
|
UntouchedValuePropagation
|
This is a variant of the SparseConstantPropagation, which computes which
registers or memory cells are not re-defined (i.e., are untouched) within a
function. This algorithm assumes that the SSA has been promoted.
|
Utils
|
|
UVTransfer
|
|
UVValue (Module)
|
|
UVValue (Type)
|
Untouched value propagation value.
|
VarExpr
|
Defined variable.
|
VarPoint<'E>
|
Program point of a defined variable.
|