retdec
Public Member Functions | Public Attributes | List of all members
retdec::llvmir2hll::CallInfoObtainer::FuncInfoCompOrder Class Reference

Represents an order in which FuncInfos should be computed. More...

#include <call_info_obtainer.h>

Collaboration diagram for retdec::llvmir2hll::CallInfoObtainer::FuncInfoCompOrder:
Collaboration graph
[legend]

Public Member Functions

void debugPrint () const
 Emits the order to standard error. More...
 

Public Attributes

FuncVector order
 An order in which FuncInfos should be computed. More...
 
FuncVectorSet sccs
 SCCs in the call graph. More...
 

Detailed Description

Represents an order in which FuncInfos should be computed.

To compute (create) an instance of this class, use getFuncInfoCompOrder().

Example: Consider the following call graph:

1 5
/ \ ^
v v |
6-->2-->3-->4

Then, getFuncInfoCompOrder() returns an instance of this class with the following data:

order = <5,4,3,6>
sccs = {{1,2,3}}
FuncVectorSet sccs
SCCs in the call graph.
Definition: call_info_obtainer.h:300
FuncVector order
An order in which FuncInfos should be computed.
Definition: call_info_obtainer.h:297

It means that the concrete obtainer should first compute the FuncInfo for 5, then for 4, then for the strongly connected component (SCC, see http://en.wikipedia.org/wiki/Strongly_connected_component) which contains 1, 2, and 3, and then for 6. Note that in order, instead of 3, there may be 2 or 1 (since all of them form an SCC, it doesn't matter which of them appears in order).

A single function is not considered to be an SCC unless it contains a call to itself.

Functions which haven't been defined (only declared) are also included into the order.

Member Function Documentation

◆ debugPrint()

void retdec::llvmir2hll::CallInfoObtainer::FuncInfoCompOrder::debugPrint ( ) const

Emits the order to standard error.

Only for debugging purposes.

Member Data Documentation

◆ order

FuncVector retdec::llvmir2hll::CallInfoObtainer::FuncInfoCompOrder::order

An order in which FuncInfos should be computed.

◆ sccs

FuncVectorSet retdec::llvmir2hll::CallInfoObtainer::FuncInfoCompOrder::sccs

SCCs in the call graph.


The documentation for this class was generated from the following files: