C# Class Reko.Analysis.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.
Show file Open project: uxmal/reko Class Usage Examples

Public Methods

Method Description
AnalyzeProgram ( ) : void
AnalyzeProgram2 ( ) : void

Analyizes the procedures of a program by finding all strongly connected components (SCCs) and processing the SCCs one by one.

BuildExpressionTrees ( ) : void

Processes procedures individually, building complex expression trees out of the simple, close-to-the-machine code generated by the disassembly.

DataFlowAnalysis ( Program program, IImportResolver importResolver, DecompilerEventListener eventListener ) : Reko.Core
DumpProgram ( ) : void
UntangleProcedures ( ) : void

Finds all interprocedural register dependencies (in- and out-parameters) and abstracts them away by rewriting as calls.

Private Methods

Method Description
UntangleProcedureScc ( IList procs ) : void

Method Details

AnalyzeProgram() public method

public AnalyzeProgram ( ) : void
return void

AnalyzeProgram2() public method

Analyizes the procedures of a program by finding all strongly connected components (SCCs) and processing the SCCs one by one.
public AnalyzeProgram2 ( ) : void
return void

BuildExpressionTrees() public method

Processes procedures individually, building complex expression trees out of the simple, close-to-the-machine code generated by the disassembly.
public BuildExpressionTrees ( ) : void
return void

DataFlowAnalysis() public method

public DataFlowAnalysis ( Program program, IImportResolver importResolver, DecompilerEventListener eventListener ) : Reko.Core
program Program
importResolver IImportResolver
eventListener DecompilerEventListener
return Reko.Core

DumpProgram() public method

public DumpProgram ( ) : void
return void

UntangleProcedures() public method

Finds all interprocedural register dependencies (in- and out-parameters) and abstracts them away by rewriting as calls.
public UntangleProcedures ( ) : void
return void