Predator  [unstable] git snapshot
Data Structures | Typedefs | Enumerations | Functions | Variables
FixedPoint Namespace Reference

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< TShapeIdentTShapeSeq
typedef std::vector< TShapeSeqTShapeSeqList
typedef std::vector< TShapeIdentTShapeIdentList
typedef const CodeStorage::FncTFnc
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< CfgEdgeTCfgEdgeList
typedef const CodeStorage::InsnTInsn
typedef int TBoolVarId
typedef std::set< GenericVarTGenericVarSet

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 SymHeapheapByIdent (const GlobalState &, THeapIdent)
 return heap of the given state by its identity
SymHeapheapByIdent (GlobalState &, THeapIdent)
 return heap of the given state by its identity
const ShapeshapeByIdent (const GlobalState &, const TShapeIdent &)
 return shape of the given state by its identity
GlobalStatecomputeStateOf (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 Documentation

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.

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.

Enumeration Type Documentation

enum EVarLevel
Enumerator:
VL_NONE 
VL_CODE_LISTENER 
VL_CONTAINER_VAR 
VL_COND_VAR 

Definition at line 105 of file fixed_point_rewrite.hh.

Function Documentation

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

bool FixedPoint::operator!= ( const GenericVar &  a,
const GenericVar &  b 
)
inline

Definition at line 145 of file fixed_point_rewrite.hh.

References operator==().

bool FixedPoint::operator< ( const GenericVar &  a,
const GenericVar &  b 
)
inline

required by std::set<GenericVar>

Definition at line 132 of file fixed_point_rewrite.hh.

References RETURN_IF_COMPARED.

std::ostream& FixedPoint::operator<< ( std::ostream &  str,
const GenericInsn &  insn 
)
inline

Definition at line 75 of file fixed_point.hh.

References GenericInsn::writeToStream().

bool FixedPoint::operator== ( const GenericVar &  a,
const GenericVar &  b 
)
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

Variable Documentation

const THeapIdent InvalidHeap

fixed heap ID for signalling failures where ID is expected