ClearBlue
Data Structures | Public Member Functions | Static Public Member Functions | Friends
SEGRegionNode Class Reference

#include <SEGRegionNode.h>

Inheritance diagram for SEGRegionNode:
Inheritance graph
[legend]
Collaboration diagram for SEGRegionNode:
Collaboration graph
[legend]

Public Member Functions

bool get_cond () const
 
void set_constraint (SEGRegionNode *region1, SEGRegionNode *region2, bool is_and)
 
void clear_constraint ()
 
SEGNodeBaseget_cond_node () const
 
void set_dbg_str (std::string str)
 
std::string get_dbg_str () const
 
bool is_satisfiable () const
 
bool is_always_satisfied () const
 
bool is_compound () const
 
bool is_interface_region ()
 
void dump_clause ()
 
- Public Member Functions inherited from SEGOperandNode
Value * getLLVMValue () const
 
SEGValuegetSEGValue () const
 
void dot (raw_fd_ostream &O) const override
 Dot its self to the given output stream.
 
virtual Value * getLLVMDbgValue () const override
 
- Public Member Functions inherited from SEGNodeBase
Type * getLLVMType () const
 get the type size of the node
 
SEGNodeBasegetChild (unsigned I) const
 
float getConfidence (const SEGNodeBase *ParentNode) const
 
unsigned getNumChildren () const
 
unsigned getNumParents () const
 
void addChild (SEGNodeBase *N, float Confidence=1.0f)
 
void eraseAllChildren ()
 
void addUseSite (SEGSiteBase *U)
 
virtual bool isTerminalNode () const
 
SEGRegionNodegetRegion () const
 
bool containsParentNode (const SEGNodeBase *N) const
 
const std::string & getDescription () const
 
ValueFlowIterator vflow_begin () const
 
ValueFlowIterator vflow_end () const
 
key_iterator< std::map< const SEGNodeBase *, float >::const_iterator > parent_begin () const
 
key_iterator< std::map< const SEGNodeBase *, float >::const_iterator > parent_end () const
 
iterator_range< std::map< const SEGNodeBase *, float >::const_iterator > parents () const
 
std::vector< SEGNodeBase * >::const_iterator child_begin () const
 
std::vector< SEGNodeBase * >::const_iterator child_end () const
 
iterator_range< std::vector< SEGNodeBase * >::const_iterator > children () const
 
std::map< const SEGNodeBase *, float >::const_iterator parent_confidence_begin () const
 
std::map< const SEGNodeBase *, float >::const_iterator parent_confidence_end () const
 
size_t child_size () const
 
size_t parent_size () const
 
std::vector< SEGSiteBase * >::const_iterator use_site_begin () const
 
std::vector< SEGSiteBase * >::const_iterator use_site_end () const
 
iterator_range< std::vector< SEGSiteBase * >::const_iterator > use_sites ()
 
size_t use_site_size () const
 
- Public Member Functions inherited from SEGObject
 SEGObject (SEGObjectKind OK, SymbolicExprGraph *SEG, BasicBlock *BB, bool fromDisk)
 
virtual Instruction * getLLVMDbgInstruction () const
 
SEGObjectKind getKind () const
 
int64_t getSEGIndex () const
 
void setObjIndex (int64_t index)
 
int64_t getObjIndex () const
 
const char * getKindName () const
 
BasicBlock * getParentBasicBlock () const
 
Function * getParentFunction () const
 
const SymbolicExprGraphgetParentGraph () const
 
SymbolicExprGraphgetParentGraph ()
 

Static Public Member Functions

static bool has_contradictory (kvec< SEGRegionNode * > &regions, SEGRegionNode *additional_region=nullptr)
 
static bool classof (const SEGObject *O)
 
- Static Public Member Functions inherited from SEGOperandNode
static bool classof (const SEGObject *N)
 
- Static Public Member Functions inherited from SEGNodeBase
static bool classof (const SEGObject *N)
 

Friends

class SymbolicExprGraph
 
class SEGSerializer
 
class SEGHash
 

Additional Inherited Members

- Public Types inherited from SEGObject
enum  SEGObjectKind {
  SEGOBJK_NodeBegin, SEGOBJK_OperandBegin, SEGOBJK_ArgumentBegin, SEGOBJK_CommonArgument,
  SEGOBJK_VarArgument, SEGOBJK_PseudoArgument, SEGOBJK_ArgumentEnd, SEGOBJK_CallSiteOutputBegin,
  SEGOBJK_CallSiteCommonOutput, SEGOBJK_CallSitePseudoOutput, SEGOBJK_CallSiteOutputEnd, SEGOBJK_ReturnBegin,
  SEGOBJK_CommonReturn, SEGOBJK_PseudoReturn, SEGOBJK_ReturnEnd, SEGOBJK_LoadMem,
  SEGOBJK_StoreMem, SEGOBJK_Phi, SEGOBJK_Region, SEGOBJK_SimpleOperand,
  SEGOBJK_Undef, SEGOBJK_CallSitePseudoInput, SEGOBJK_CallSiteSummaryArgument, SEGOBJK_CallSiteSummaryReturn,
  SEGOBJK_OperandEnd, SEGOBJK_OpcodeBegin, SEGOBJK_BinaryWithIntConst, SEGOBJK_Cast,
  SEGOBJK_SimpleOpcode, SEGOBJK_OpcodeEnd, SEGOBJK_NodeEnd, SEGOBJK_SiteBegin,
  SEGOBJK_CallSite, SEGOBJK_ReturnSite, SEGOBJK_SimpleSiteBegin, SEGOBJK_GEPSite,
  SEGOBJK_DereferenceSite, SEGOBJK_DivSite, SEGOBJK_CmpSite, SEGOBJK_AllocSite,
  SEGOBJK_SimpleSiteEnd, SEGOBJK_SiteEnd
}
 
- Protected Member Functions inherited from SEGOperandNode
 SEGOperandNode (SEGObjectKind K, Type *Ty, SymbolicExprGraph *SEG, BasicBlock *BB, bool fromDisk)
 A node whose value which will be set to null.
 
 SEGOperandNode (SEGObjectKind K, Value *Val, Type *Ty, SymbolicExprGraph *SEG, BasicBlock *BB, bool fromDisk)
 
- Protected Member Functions inherited from SEGNodeBase
 SEGNodeBase (SEGObjectKind K, Type *Ty, SymbolicExprGraph *SEG, BasicBlock *BB, bool fromDisk)
 
void setDescription (std::string &Desc)
 
- Protected Attributes inherited from SEGOperandNode
Value * LLVMValue = nullptr
 
SEGValuesegValue = nullptr
 

Detailed Description

The seg node denoting a region which represent the shared control dependence of a set of nodes. The region is valid when value_of(cond_node) == cond is satisfied There are two type of special regions: (1) cond_node == nullptr and cond == false : The region is a compound region derived from other regions (2) cond_node == nullptr and cond == true : The region is always satisfied

Note: cond_node may be an SEG Node in another SEG (i.e. another function)


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