Data Structures | |
| class | ArgumentIterator |
| struct | CDGCond |
| class | ReturnIterator |
Public Types | |
|
typedef std::vector < SEGCallSite * > ::const_iterator | SEGCallSiteIterator |
Public Member Functions | |
| int64_t | getSEGIndex () const |
| template<class T > | |
| T * | getSEGObject (int64_t index) |
| size_t | getNumCommonArgument () const |
| size_t | getNumPseudoArgument () const |
| size_t | getNumVarArgument () const |
| size_t | getNumPseudoReturn () const |
| bool | hasCommonReturnNode () const |
| const SEGCommonReturnNode * | getCommonReturn () const |
| const SEGPseudoReturnNode * | getPseudoReturn (size_t Index) const |
| const SEGCommonArgumentNode * | getCommonArgument (size_t Index) const |
| const SEGPseudoArgumentNode * | getPseudoArgument (size_t Index) const |
| const SEGVarArgumentNode * | getVarArgument (size_t Index) const |
| bool | isSummaryArgument (const SEGNodeBase *Node) const |
| int | getSummaryArgumentAPDepth (const SEGNodeBase *Node) const |
|
std::unordered_set < SEGNodeBase * > * | getSummaryArgument (int APDepth) const |
| bool | isSummaryReturn (const SEGNodeBase *Node) const |
| int | getSummaryReturnAPDepth (const SEGNodeBase *Node) const |
|
std::unordered_set < SEGNodeBase * > * | getSummaryReturn (int APDepth) const |
| bool | isDirectlyPassedToCaller (const SEGNodeBase *Node) const |
| bool | isDirectlyPassedFromCaller (const SEGNodeBase *Node) const |
| void | clearRegionNodeCache () |
| SymbolicExprGraph (Function *) | |
| Function * | getBaseFunc () const |
| template<class SiteTy > | |
| SiteTy * | findSite (Instruction *I) const |
| template<class SiteTy > | |
| SiteTy * | findSite (SEGValue *sValue) const |
| Get site node based on Value and specific comparison method. More... | |
| SEGOperandNode * | findNode (Value *) const |
| SEGOperandNode * | findNode (SEGValue *) const |
| Get operand node based on Value. More... | |
| SEGRegionNode * | findUnitRegion (SEGNodeBase *cond_node, bool cond) const |
| Return nullptr if the node does not exist. | |
| SEGRegionNode * | findAndRegion (SEGRegionNode *region1, SEGRegionNode *region2) const |
| Return nullptr if the node does not exist. | |
| SEGRegionNode * | findOrRegion (SEGRegionNode *region1, SEGRegionNode *region2) const |
| Return nullptr if the node does not exist. | |
| SEGRegionNode * | findNotRegion (SEGRegionNode *region1) const |
| Return nullptr if the node does not exist. | |
| const std::set< CDGCond > * | getBlockCond (BasicBlock *BB) const |
| void | dot (const char *FileName) const |
| Dot this graph to a file with filename. | |
| void | dot (std::vector< const SEGNodeBase * > Srcs, const char *FileName) const |
| Dot value flow from the given source nodes. | |
| void | validate () |
| validate this is a DAG | |
| SEGRegionNode * | findOrCreateRegionForBB (BasicBlock *BB) |
| SEGRegionNode * | findRegionForBB (BasicBlock *BB) const |
|
std::unordered_map< Value *, SEGOperandNode * > ::const_iterator | value_node_begin () const |
|
std::unordered_map< Value *, SEGOperandNode * > ::const_iterator | value_node_end () const |
|
std::vector< std::pair< Value *, SEGOperandNode * > >::const_iterator | value_node_pair_begin () const |
|
std::vector< std::pair< Value *, SEGOperandNode * > >::const_iterator | value_node_pair_end () const |
|
std::set< SEGNodeBase * > ::const_iterator | non_value_node_begin () const |
|
std::set< SEGNodeBase * > ::const_iterator | non_value_node_end () const |
|
std::map< Instruction *, SEGSiteBase * > ::const_iterator | inst_site_begin () const |
|
std::map< Instruction *, SEGSiteBase * > ::const_iterator | inst_site_end () const |
|
std::map< std::pair < Instruction *, Value * > , SEGStoreMemNode * > ::const_iterator | store_mem_node_begin () const |
|
std::map< std::pair < Instruction *, Value * > , SEGStoreMemNode * > ::const_iterator | store_mem_node_end () const |
|
std::map< Instruction *, SEGSiteBase * > ::const_iterator | site_begin () const |
|
std::map< Instruction *, SEGSiteBase * > ::const_iterator | site_end () const |
|
std::vector< SEGObject * > ::const_iterator | node_begin () const |
|
std::vector< SEGObject * > ::const_iterator | node_end () const |
| ReturnIterator | return_begin () const |
| ReturnIterator | return_end () const |
| ReturnIterator | pseudo_return_begin () const |
| ReturnIterator | pseudo_return_end () const |
| ArgumentIterator | arg_begin () const |
| ArgumentIterator | arg_end () const |
| ArgumentIterator | common_arg_begin () const |
| ArgumentIterator | common_arg_end () const |
| ArgumentIterator | pseudo_arg_begin () const |
| ArgumentIterator | pseudo_arg_end () const |
| ArgumentIterator | var_arg_begin () const |
| ArgumentIterator | var_arg_end () const |
| SEGCallSiteIterator | seg_callsite_begin () const |
| SEGCallSiteIterator | seg_callsite_end () const |
| SEGOperandNode * SymbolicExprGraph::findNode | ( | Value * | Val | ) | const |
Find node only. Return nullptr if the node does not exist
| SEGOperandNode * SymbolicExprGraph::findNode | ( | SEGValue * | sValue | ) | const |
Get operand node based on Value.
| sValue | SEGValue to be compared |

|
inline |
find a special use site according to the specified type
|
inline |
Get site node based on Value and specific comparison method.
| SiteTy | the specific site type that is applied to site node |
| sValue | SEGValue to be compared |

|
inline |
See SymbolicExprGraph::blockCondMap. Note that it will return nullptr, if blockCondMap does not contain b.
1.8.5