ClearBlue
Data Structures | Public Member Functions | Static Public Member Functions | Friends
SEGCallSite Class Reference
Inheritance diagram for SEGCallSite:
Inheritance graph
[legend]
Collaboration diagram for SEGCallSite:
Collaboration graph
[legend]

Data Structures

class  CalleeIterator
 
class  InputIterator
 
class  OutputIterator
 

Public Member Functions

 SEGCallSite (PersistedSEGCallSite *Site, SymbolicExprGraph *SEG)
 
virtual void assembleSEGObject (std::map< int, SEGObject * > &FuncSEGObjMap)
 Assemble the SEG object's related objects. More...
 
void setBackEdge (WrappedFunction *Callee)
 
bool isBackEdge (WrappedFunction *Callee) const
 
void setExpanded (WrappedFunction *Callee)
 
bool isExpanded (WrappedFunction *Callee) const
 
virtual PersistedSEGObject * createPersistedObject () const
 
const SEGOperandNodegetCommonInput (size_t Index) const
 
const SEGOperandNodegetPseudoInput (Function *, size_t Index) const
 
const SEGOperandNodegetPseudoInput (WrappedFunction *, size_t Index) const
 
const SEGCallSiteCommonOutputNodegetCommonOutput () const
 
const SEGCallSitePseudoOutputNodegetPseudoOutput (Function *, size_t Index) const
 
const SEGCallSitePseudoOutputNodegetPseudoOutput (WrappedFunction *, size_t Index) const
 
bool hasCommonOutput () const
 
bool isCommonInput (const SEGNodeBase *Node) const
 
size_t getNumOutputs (Function *) const
 
size_t getNumPseudoOutputs (Function *) const
 
size_t getNumInputs (Function *) const
 
size_t getNumCommonInputs () const
 
size_t getNumPseudoInputs (Function *) const
 
size_t getInputIndex (const SEGNodeBase *Input) const
 
bool hasCallee (Function *Func) const
 
Function * getCalledFunction () const
 
WrappedFunction * getWrappedCalledFunction () const
 
CalleeIterator callee_begin () const
 
CalleeIterator callee_end () const
 
size_t callee_size () const
 
InputIterator input_begin (WrappedFunction *Callee) const
 
InputIterator input_begin (Function *Callee) const
 
InputIterator input_end (WrappedFunction *Callee) const
 
InputIterator input_end (Function *Callee) const
 
std::vector< SEGCallSiteInputStruct >::const_iterator common_input_begin () const
 
std::vector< SEGCallSiteInputStruct >::const_iterator common_input_end () const
 
OutputIterator output_begin (WrappedFunction *Callee) const
 
OutputIterator output_begin (Function *Callee) const
 
OutputIterator output_end (WrappedFunction *Callee) const
 
OutputIterator output_end (Function *Callee) const
 
- Public Member Functions inherited from SEGSiteBase
 SEGSiteBase (PersistedSEGSiteBase *Site, SymbolicExprGraph *SEG)
 
CallSite getLLVMCallSite () const
 
WrappedCallSite getWrappedLLVMCallSite () const
 
Instruction * getInstruction () const
 
WrappedInstruction * getWrappedInstruction () const
 
SEGValuegetSEGValue () const
 
virtual Value * getLLVMDbgValue () const override
 
virtual WrappedValue * getWrappedLLVMDbgValue () const override
 
virtual std::string getSrcFile () const
 
virtual std::int32_t getSrcLine () const
 
- Public Member Functions inherited from SEGObject
 SEGObject (SEGObjectKind OK, SymbolicExprGraph *SEG, BasicBlock *BB)
 
 SEGObject (PersistedSEGObject *Obj, SymbolicExprGraph *SEG)
 
virtual Instruction * getLLVMDbgInstruction () const
 
virtual WrappedInstruction * getWrappedLLVMDbgInstruction () const
 
SEGObjectKind getKind () const
 
int getSEGIndex () const
 
int getObjIndex () const
 
const char * getKindName () const
 
BasicBlock * getParentBasicBlock () const
 
WrappedBasicBlock * getWrappedParentBasicBlock () const
 
Function * getParentFunction () const
 
const SymbolicExprGraphgetParentGraph () const
 
SymbolicExprGraphgetParentGraph ()
 
virtual void persistSEGData (PersistedSymbolicExprGraph *PersistedSEG)
 
bool isFromLibrary () const
 
virtual std::string getAuxiliaryDebugStr () const
 

Static Public Member Functions

static bool classof (const SEGObject *N)
 
- Static Public Member Functions inherited from SEGSiteBase
static bool classof (const SEGObject *O)
 

Friends

class IntraFalcon
 
class FalconPlus::IntraFalcon
 
class MantaIntraFalcon
 
class SymbolicExprGraph
 
class SymbolicExprGraphBuilder
 
class OCValueFlowBuilder
 

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 SEGSiteBase
 SEGSiteBase (SEGObjectKind K, Instruction *User, SymbolicExprGraph *G)
 
- Protected Attributes inherited from SEGObject
PersistedSEGObject * PersistedObj = nullptr
 the persistence object
 

Constructor & Destructor Documentation

◆ SEGCallSite()

SEGCallSite::SEGCallSite ( PersistedSEGCallSite *  Site,
SymbolicExprGraph SEG 
)
inline

A constructor specially designed for persistence Use the persistence obj to initialize SEGBrSite

Member Function Documentation

◆ assembleSEGObject()

void SEGCallSite::assembleSEGObject ( std::map< int, SEGObject * > &  FuncSEGObjMap)
virtual

Assemble the SEG object's related objects.

initialize the input nodes

initialize the common output node

Reimplemented from SEGSiteBase.

Here is the call graph for this function:

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