Predator
[unstable] git snapshot
|
Data Structures | |
class | GenericInsn |
struct | TraceEdge |
single heap-level trace edge holding inner ID mappings inside More... | |
struct | CfgEdge |
single control-flow edge connecting instructions (no basic blocks here) More... | |
struct | LocalState |
state summary for a single location (preceding a single instruction) More... | |
class | GlobalState |
annotated fixed-point of a program (or its part, e.g. a function) More... | |
class | StateByInsn |
class | IStateRewriter |
class | MultiRewriter |
class | RecordRewriter |
class | StateRewriter |
struct | GenericVar |
class | AnnotatedInsn |
class | ClInsn |
class | TextInsn |
Typedefs | |
typedef std::list< TShapeIdent > | TShapeSeq |
typedef std::vector< TShapeSeq > | TShapeSeqList |
typedef std::vector< TShapeIdent > | TShapeIdentList |
typedef const CodeStorage::Fnc * | TFnc |
typedef int | TLocIdx |
typedef int | THeapIdx |
typedef int | TShapeIdx |
typedef std::pair< TLocIdx, THeapIdx > | THeapIdent |
heap (in our case represented by SMG) identity | |
typedef std::pair< THeapIdent, TShapeIdx > | TShapeIdent |
container shape (in our case represented by Shape) identity | |
typedef IdMapper< TShapeIdx, INT_MIN, INT_MAX > | TShapeMapper |
NOTE: we can omit specifying INT_MIN/INT_MAX when compiling as C++11. | |
typedef IdMapper< TObjId, OBJ_INVALID, OBJ_MAX_ID > | TObjectMapper |
typedef std::vector< TraceEdge * > | TTraceEdgeList |
typedef std::vector < TTraceEdgeList > | TEdgeListByHeapIdx |
typedef std::vector< CfgEdge > | TCfgEdgeList |
typedef const CodeStorage::Insn * | TInsn |
typedef int | TBoolVarId |
typedef std::set< GenericVar > | TGenericVarSet |
Enumerations | |
enum | EVarLevel { VL_NONE, VL_CODE_LISTENER, VL_CONTAINER_VAR, VL_COND_VAR } |
Functions | |
void | findPredecessors (TShapeIdentList *pDst, const TShapeIdent csIdent, const GlobalState &glState) |
void | collectShapeSequences (TShapeSeqList *pDst, const GlobalState &glState) |
std::ostream & | operator<< (std::ostream &str, const GenericInsn &insn) |
const SymHeap * | heapByIdent (const GlobalState &, THeapIdent) |
return heap of the given state by its identity | |
SymHeap * | heapByIdent (GlobalState &, THeapIdent) |
return heap of the given state by its identity | |
const Shape * | shapeByIdent (const GlobalState &, const TShapeIdent &) |
return shape of the given state by its identity | |
GlobalState * | computeStateOf (TFnc, const StateByInsn::TStateMap &) |
caller is responsible to destroy the returned instance | |
void | exportControlFlow (GlobalState *pDst, const GlobalState &glState) |
write the CFG-only skeleton of glState into *pDst | |
void | removeDeadCode (GlobalState *pState) |
remove instructions assigning values to dead variables | |
void | sl_dump (const TShapeMapper &) |
pretty print the given ID mapping | |
bool | operator< (const GenericVar &a, const GenericVar &b) |
required by std::set<GenericVar> | |
bool | operator== (const GenericVar &a, const GenericVar &b) |
required by operator== over std::set<GenericVar> | |
bool | operator!= (const GenericVar &a, const GenericVar &b) |
Variables | |
const THeapIdent | InvalidHeap |
fixed heap ID for signalling failures where ID is expected |
typedef int TBoolVarId |
Definition at line 112 of file fixed_point_rewrite.hh.
typedef std::vector<CfgEdge> TCfgEdgeList |
Definition at line 110 of file fixed_point.hh.
typedef std::vector<TTraceEdgeList> TEdgeListByHeapIdx |
Definition at line 96 of file fixed_point.hh.
typedef const CodeStorage::Fnc* TFnc |
Definition at line 38 of file fixed_point.hh.
typedef std::set<GenericVar> TGenericVarSet |
Definition at line 150 of file fixed_point_rewrite.hh.
typedef std::pair<TLocIdx, THeapIdx> THeapIdent |
heap (in our case represented by SMG) identity
Definition at line 45 of file fixed_point.hh.
typedef int THeapIdx |
Definition at line 41 of file fixed_point.hh.
typedef const CodeStorage::Insn* TInsn |
Definition at line 33 of file fixed_point_proxy.hh.
typedef int TLocIdx |
Definition at line 40 of file fixed_point.hh.
typedef IdMapper<TObjId, OBJ_INVALID, OBJ_MAX_ID> TObjectMapper |
Definition at line 55 of file fixed_point.hh.
typedef std::pair<THeapIdent, TShapeIdx> TShapeIdent |
container shape (in our case represented by Shape) identity
Definition at line 48 of file fixed_point.hh.
typedef std::vector<TShapeIdent> TShapeIdentList |
Definition at line 31 of file cont_shape_seq.hh.
typedef int TShapeIdx |
Definition at line 42 of file fixed_point.hh.
typedef IdMapper<TShapeIdx, INT_MIN, INT_MAX> TShapeMapper |
NOTE: we can omit specifying INT_MIN/INT_MAX when compiling as C++11.
Definition at line 54 of file fixed_point.hh.
typedef std::list<TShapeIdent> TShapeSeq |
Definition at line 29 of file cont_shape_seq.hh.
typedef std::vector<TShapeSeq> TShapeSeqList |
Definition at line 30 of file cont_shape_seq.hh.
typedef std::vector<TraceEdge *> TTraceEdgeList |
Definition at line 95 of file fixed_point.hh.
enum EVarLevel |
Definition at line 105 of file fixed_point_rewrite.hh.
void FixedPoint::collectShapeSequences | ( | TShapeSeqList * | pDst, |
const GlobalState & | glState | ||
) |
GlobalState* FixedPoint::computeStateOf | ( | TFnc | , |
const StateByInsn::TStateMap & | |||
) |
caller is responsible to destroy the returned instance
void FixedPoint::exportControlFlow | ( | GlobalState * | pDst, |
const GlobalState & | glState | ||
) |
write the CFG-only skeleton of glState into *pDst
void FixedPoint::findPredecessors | ( | TShapeIdentList * | pDst, |
const TShapeIdent | csIdent, | ||
const GlobalState & | glState | ||
) |
const SymHeap* FixedPoint::heapByIdent | ( | const GlobalState & | , |
THeapIdent | |||
) |
return heap of the given state by its identity
SymHeap* FixedPoint::heapByIdent | ( | GlobalState & | , |
THeapIdent | |||
) |
return heap of the given state by its identity
|
inline |
Definition at line 145 of file fixed_point_rewrite.hh.
References operator==().
|
inline |
required by std::set<GenericVar>
Definition at line 132 of file fixed_point_rewrite.hh.
References RETURN_IF_COMPARED.
|
inline |
Definition at line 75 of file fixed_point.hh.
References GenericInsn::writeToStream().
|
inline |
required by operator== over std::set<GenericVar>
Definition at line 140 of file fixed_point_rewrite.hh.
References GenericVar::code, and GenericVar::uid.
Referenced by operator!=().
void FixedPoint::removeDeadCode | ( | GlobalState * | pState | ) |
remove instructions assigning values to dead variables
const Shape* FixedPoint::shapeByIdent | ( | const GlobalState & | , |
const TShapeIdent & | |||
) |
return shape of the given state by its identity
void FixedPoint::sl_dump | ( | const TShapeMapper & | ) |
pretty print the given ID mapping
const THeapIdent InvalidHeap |
fixed heap ID for signalling failures where ID is expected