ROSE
0.11.87.0
|
CFG vertex for data-flow analysis.
Definition at line 26 of file Partitioner2/DataFlow.h.
#include <Rose/BinaryAnalysis/Partitioner2/DataFlow.h>
Public Types | |
enum | Type { BBLOCK, FAKED_CALL, FUNCRET, INDET } |
Vertex type. More... | |
Public Member Functions | |
DfCfgVertex (const BasicBlock::Ptr &bblock, const Function::Ptr &parentFunction, size_t inliningId) | |
Construct a basic block vertex. More... | |
DfCfgVertex (const Function::Ptr &function, const Function::Ptr &parentFunction, size_t inliningId) | |
Construct a faked call vertex. More... | |
DfCfgVertex (Type type, const Function::Ptr &parentFunction, size_t inliningId) | |
Construct a vertex of specified type that takes no auxiliary data. More... | |
Type | type () const |
Type of the vertex. More... | |
const BasicBlock::Ptr & | bblock () const |
Basic block. More... | |
const Function::Ptr & | callee () const |
Function represented by faked call. More... | |
Function::Ptr | parentFunction () const |
Function owning this vertex. More... | |
size_t | inliningId () const |
Inlining invocation number. More... | |
Vertex type.
Enumerator | |
---|---|
BBLOCK |
Vertex represents a basic block. |
FAKED_CALL |
Represents a whole called function. |
FUNCRET |
Vertex represents returning to the caller. |
INDET |
Indeterminate basic block where no information is available. |
Definition at line 29 of file Partitioner2/DataFlow.h.
|
inlineexplicit |
Construct a basic block vertex.
The basic block pointer should not be a null pointer.
Definition at line 45 of file Partitioner2/DataFlow.h.
|
inlineexplicit |
Construct a faked call vertex.
The function may be null if indeterminate.
Definition at line 51 of file Partitioner2/DataFlow.h.
|
inlineexplicit |
Construct a vertex of specified type that takes no auxiliary data.
Definition at line 55 of file Partitioner2/DataFlow.h.
References BBLOCK, and FAKED_CALL.
|
inline |
Type of the vertex.
Vertex types are immutable, defined when the vertex is created. Every vertex has a type.
Definition at line 63 of file Partitioner2/DataFlow.h.
|
inline |
Basic block.
The basic block for a vertex is immutable, defined when the vertex is created. Only basic block vertices have a basic block; other vertex types will return a null pointer.
Definition at line 69 of file Partitioner2/DataFlow.h.
|
inline |
Function represented by faked call.
Definition at line 72 of file Partitioner2/DataFlow.h.
|
inline |
Function owning this vertex.
Pointer to the function to which this vertex belongs. For basic blocks, it's a function to which the basic block belongs; for faked calls, its the caller function; for function returns, it's the function returning; for the indeterminate vertex it's a null pointer.
Definition at line 79 of file Partitioner2/DataFlow.h.
|
inline |
Inlining invocation number.
For a graph constructed for interprocedural data-flow, some function calls are replaced by the called function's body. Each time this inlining happens, a counter is incremented and all new vertices are created using this counter. The counter starts at zero.
Definition at line 86 of file Partitioner2/DataFlow.h.