C# (CSharp) Reko.Analysis Namespace

Classes

Name Description
ConditionCodeEliminator Removes any uses and definitions of condition codes.
DataFlowAnalysis We are keenly interested in discovering the register linkage between procedures, i.e. what registers are used by a called procedure, and what modified registers are used by a calling procedure. Once these registers have been discovered, we can separate the procedures from each other and proceed with the decompilation.
ExpressionUseRemover
IndirectCallExpander Replace ssa identifiers with expressions that defines them. Also replace phi functions.
IndirectCallRewriter Try to rewrite indirect call statements to applications using user-defined data (e.g. global variables, parameters of procedures).
IndirectCallTypeAscender Pulling type information from the leaves of expression trees to their roots without store it.
SsaEvaluationContext
SsaIdentifierTransformer Replace application parameters with ssa identifiers
SsaIdentifierTransformer.ArgumentTransformer
UserSignatureBuilder Builds ProcedureSignatures from user-supplied signatures.
ValueNumbering This class is used to compute value numbers of all the SSA variables of a procedure. As a useful side effect, it also detects induction variables, determines their stride &c. This will be useful later when we need to classify arrays.
ValueNumbering.AnyValueNumber
ValueNumbering.Node Represents a node in the SSA node graph. All edges are to operands used to compute this node.
ValueNumbering.NodeVisitor
ValueNumbering.RegionConstantFinder
ValueNumbering.ValueNumberingContext