A computation of strongly connected components (SCCs) from a call graph.
More...
A computation of strongly connected components (SCCs) from a call graph.
See http://en.wikipedia.org/wiki/Strongly_connected_component for a description of an SCC.
The used algorithm is the Tarjan's strongly connected components algorithm, see http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm
Instances of this class have reference object semantics.
◆ CalledFuncInfoMap
Mapping of a CalledFunc into its information.
◆ CalledFuncStack
◆ SCCComputer()
retdec::llvmir2hll::CallInfoObtainer::SCCComputer::SCCComputer |
( |
ShPtr< CG > |
cg | ) |
|
|
private |
Constructs a computer.
- Parameters
-
[in] | cg | Call graph of the current module. |
- Preconditions
-
◆ computeSCCs()
Computes and returns all strongly connected components (SCCs) in the given call graph.
- Preconditions
-
A single function is not considered to be an SCC unless it contains a call to itself (see the description of FuncInfoCompOrder).
◆ findSCCs()
Finds and returns all strongly connected components (SCCs) in the given call graph.
A single function is not considered to be an SCC unless it contains a call to itself (see the description of FuncInfoCompOrder).
◆ visit()
◆ calledFuncInfoMap
CalledFuncInfoMap retdec::llvmir2hll::CallInfoObtainer::SCCComputer::calledFuncInfoMap |
|
private |
Information about every CalledFunc.
◆ cg
ShPtr<CG> retdec::llvmir2hll::CallInfoObtainer::SCCComputer::cg |
|
private |
Call graph of the current module.
◆ currentSCC
FuncSet retdec::llvmir2hll::CallInfoObtainer::SCCComputer::currentSCC |
|
private |
The currently computed SCC.
◆ index
int retdec::llvmir2hll::CallInfoObtainer::SCCComputer::index |
|
private |
The 'index' variable from the SCC algorithm.
◆ sccs
FuncVectorSet retdec::llvmir2hll::CallInfoObtainer::SCCComputer::sccs |
|
private |
The set of computed SCCs.
◆ stack
The 'stack' variable from the SCC algorithm.
The documentation for this class was generated from the following files: