#include <SVFValue.h>
|
typedef std::vector< const SVFBasicBlock * >::const_iterator | const_iterator |
|
typedef SVFLoopAndDomInfo::BBSet | BBSet |
|
typedef SVFLoopAndDomInfo::BBList | BBList |
|
typedef SVFLoopAndDomInfo::LoopBBs | LoopBBs |
|
enum | SVFValKind {
SVFVal
, SVFFunc
, SVFBB
, SVFInst
,
SVFCall
, SVFVCall
, SVFGlob
, SVFArg
,
SVFConst
, SVFConstData
, SVFConstInt
, SVFConstFP
,
SVFNullPtr
, SVFBlackHole
, SVFMetaAsValue
, SVFOther
} |
|
typedef s64_t | GNodeK |
|
|
| SVFFunction (const SVFType *ty, const SVFFunctionType *ft, bool declare, bool intrinsic, bool addrTaken, bool varg, SVFLoopAndDomInfo *ld) |
|
| SVFFunction (void)=delete |
|
virtual | ~SVFFunction () |
|
SVFLoopAndDomInfo * | getLoopAndDomInfo () |
|
bool | isDeclaration () const |
|
bool | isIntrinsic () const |
|
bool | hasAddressTaken () const |
|
const SVFFunctionType * | getFunctionType () const |
| Returns the FunctionType. More...
|
|
const SVFType * | getReturnType () const |
| Returns the FunctionType. More...
|
|
const SVFFunction * | getDefFunForMultipleModule () const |
|
u32_t | arg_size () const |
|
const SVFArgument * | getArg (u32_t idx) const |
|
bool | isVarArg () const |
|
bool | hasBasicBlock () const |
|
const SVFBasicBlock * | getEntryBlock () const |
|
const SVFBasicBlock * | getExitBB () const |
|
void | setExitBlock (SVFBasicBlock *bb) |
|
const SVFBasicBlock * | front () const |
|
const SVFBasicBlock * | back () const |
|
const_iterator | begin () const |
|
const_iterator | end () const |
|
const std::vector< const SVFBasicBlock * > & | getBasicBlockList () const |
|
const std::vector< const SVFBasicBlock * > & | getReachableBBs () const |
|
bool | isUncalledFunction () const |
|
bool | hasReturn () const |
|
void | getExitBlocksOfLoop (const SVFBasicBlock *bb, BBList &exitbbs) const |
|
bool | hasLoopInfo (const SVFBasicBlock *bb) const |
|
const LoopBBs & | getLoopInfo (const SVFBasicBlock *bb) const |
|
const SVFBasicBlock * | getLoopHeader (const BBList &lp) const |
|
bool | loopContainsBB (const BBList &lp, const SVFBasicBlock *bb) const |
|
const Map< const SVFBasicBlock *, BBSet > & | getDomTreeMap () const |
|
const Map< const SVFBasicBlock *, BBSet > & | getDomFrontierMap () const |
|
bool | isLoopHeader (const SVFBasicBlock *bb) const |
|
bool | dominate (const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const |
|
bool | postDominate (const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const |
|
| SVFValue ()=delete |
|
virtual | ~SVFValue ()=default |
|
GNodeK | getKind () const |
| Get the type of this SVFValue. More...
|
|
const std::string & | getName () const |
|
void | setName (const std::string &n) |
|
void | setName (std::string &&n) |
|
virtual const SVFType * | getType () const |
|
bool | isConstDataOrAggData () const |
|
bool | ptrInUncalledFunction () const |
|
bool | isblackHole () const |
|
bool | isNullPtr () const |
|
virtual void | setSourceLoc (const std::string &sourceCodeInfo) |
|
virtual const std::string | getSourceLoc () const |
|
std::string | toString () const |
| Needs to be implemented by a SVF front end. More...
|
|
Definition at line 297 of file SVFValue.h.
◆ BBList
◆ BBSet
◆ const_iterator
◆ LoopBBs
◆ SVFFunction() [1/2]
Definition at line 152 of file SVFValue.cpp.
bool intrinsic
return true if this function does not have a body
bool varArg
return true if this function never returns
bool isUncalled
return true if this function is address-taken (for indirect call purposes)
SVFBasicBlock * exitBlock
all formal arguments of this function
bool addrTaken
return true if this function is an intrinsic function (e.g., llvm.dbg), which does not reside in the ...
const SVFFunction * realDefFun
the loop and dominate information
bool isNotRet
return true if this function is never called
const SVFFunctionType * funcType
return true if this function supports variable arguments
SVFLoopAndDomInfo * loopAndDom
FunctionType, which is different from the type (PointerType) of this SVFFunction.
◆ SVFFunction() [2/2]
SVF::SVFFunction::SVFFunction |
( |
void |
| ) |
|
|
delete |
◆ ~SVFFunction()
SVFFunction::~SVFFunction |
( |
| ) |
|
|
virtual |
Definition at line 161 of file SVFValue.cpp.
std::vector< const SVFArgument * > allArgs
all BasicBlocks of this function
std::vector< const SVFBasicBlock * > allBBs
the definition of a function across multiple modules
◆ addArgument()
void SVF::SVFFunction::addArgument |
( |
SVFArgument * |
arg | ) |
|
|
inlineprotected |
◆ addBasicBlock()
a 'single' basic block having no successors and containing return instruction in a function
attributes to be set only through Module builders e.g., LLVMModule
Definition at line 326 of file SVFValue.h.
◆ arg_size()
u32_t SVFFunction::arg_size |
( |
| ) |
const |
◆ back()
◆ begin()
◆ classof()
static bool SVF::SVFFunction::classof |
( |
const SVFValue * |
node | ) |
|
|
inlinestatic |
◆ dominate()
Definition at line 505 of file SVFValue.h.
bool dominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const
◆ end()
◆ front()
Definition at line 421 of file SVFValue.h.
const SVFBasicBlock * getEntryBlock() const
◆ getArg()
◆ getBasicBlockList()
const std::vector<const SVFBasicBlock*>& SVF::SVFFunction::getBasicBlockList |
( |
| ) |
const |
|
inline |
◆ getDefFunForMultipleModule()
const SVFFunction* SVF::SVFFunction::getDefFunForMultipleModule |
( |
| ) |
const |
|
inline |
◆ getDomFrontierMap()
Definition at line 495 of file SVFValue.h.
const Map< const SVFBasicBlock *, BBSet > & getDomFrontierMap() const
◆ getDomTreeMap()
Definition at line 490 of file SVFValue.h.
Map< const SVFBasicBlock *, BBSet > & getDomTreeMap()
◆ getEntryBlock()
Definition at line 409 of file SVFValue.h.
411 assert(
hasBasicBlock() &&
"function does not have any Basicblock, external function?");
◆ getExitBB()
◆ getExitBlocksOfLoop()
void SVF::SVFFunction::getExitBlocksOfLoop |
( |
const SVFBasicBlock * |
bb, |
|
|
BBList & |
exitbbs |
|
) |
| const |
|
inline |
Definition at line 465 of file SVFValue.h.
void getExitBlocksOfLoop(const SVFBasicBlock *bb, BBList &exitbbs) const
◆ getFunctionType()
Returns the FunctionType.
Definition at line 382 of file SVFValue.h.
◆ getLoopAndDomInfo()
◆ getLoopHeader()
Definition at line 480 of file SVFValue.h.
const SVFBasicBlock * getLoopHeader(const LoopBBs &lp) const
◆ getLoopInfo()
Definition at line 475 of file SVFValue.h.
const LoopBBs & getLoopInfo(const SVFBasicBlock *bb) const
◆ getReachableBBs()
const std::vector<const SVFBasicBlock*>& SVF::SVFFunction::getReachableBBs |
( |
| ) |
const |
|
inline |
Definition at line 450 of file SVFValue.h.
const BBList & getReachableBBs() const
◆ getReturnType()
const SVFType* SVF::SVFFunction::getReturnType |
( |
| ) |
const |
|
inline |
Returns the FunctionType.
Definition at line 388 of file SVFValue.h.
const SVFType * getReturnType() const
◆ hasAddressTaken()
bool SVF::SVFFunction::hasAddressTaken |
( |
| ) |
const |
|
inline |
◆ hasBasicBlock()
bool SVF::SVFFunction::hasBasicBlock |
( |
| ) |
const |
|
inline |
◆ hasLoopInfo()
bool SVF::SVFFunction::hasLoopInfo |
( |
const SVFBasicBlock * |
bb | ) |
const |
|
inline |
Definition at line 470 of file SVFValue.h.
bool hasLoopInfo(const SVFBasicBlock *bb) const
◆ hasReturn()
bool SVF::SVFFunction::hasReturn |
( |
| ) |
const |
|
inline |
◆ isDeclaration()
bool SVF::SVFFunction::isDeclaration |
( |
| ) |
const |
|
inline |
◆ isIntrinsic()
bool SVF::SVFFunction::isIntrinsic |
( |
| ) |
const |
|
inline |
◆ isLoopHeader()
bool SVF::SVFFunction::isLoopHeader |
( |
const SVFBasicBlock * |
bb | ) |
const |
|
inline |
Definition at line 500 of file SVFValue.h.
bool isLoopHeader(const SVFBasicBlock *bb) const
◆ isUncalledFunction()
bool SVF::SVFFunction::isUncalledFunction |
( |
| ) |
const |
|
inline |
◆ isVarArg()
bool SVFFunction::isVarArg |
( |
| ) |
const |
◆ loopContainsBB()
Definition at line 485 of file SVFValue.h.
bool loopContainsBB(const LoopBBs &lp, const SVFBasicBlock *bb) const
◆ postDominate()
Definition at line 510 of file SVFValue.h.
bool postDominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const
◆ setDefFunForMultipleModule()
void SVF::SVFFunction::setDefFunForMultipleModule |
( |
const SVFFunction * |
deffun | ) |
|
|
inlineprotected |
◆ setExitBlock()
◆ setIsNotRet()
void SVF::SVFFunction::setIsNotRet |
( |
bool |
notRet | ) |
|
|
inlineprotected |
◆ setIsUncalledFunction()
void SVF::SVFFunction::setIsUncalledFunction |
( |
bool |
uncalledFunction | ) |
|
|
inlineprotected |
◆ LLVMModuleSet
◆ SVFIRBuilder
◆ SVFIRReader
◆ SVFIRWriter
◆ addrTaken
bool SVF::SVFFunction::addrTaken |
|
private |
return true if this function is an intrinsic function (e.g., llvm.dbg), which does not reside in the application code
Definition at line 313 of file SVFValue.h.
◆ allArgs
std::vector<const SVFArgument*> SVF::SVFFunction::allArgs |
|
private |
all BasicBlocks of this function
Definition at line 321 of file SVFValue.h.
◆ allBBs
the definition of a function across multiple modules
Definition at line 320 of file SVFValue.h.
◆ exitBlock
all formal arguments of this function
Definition at line 322 of file SVFValue.h.
◆ funcType
return true if this function supports variable arguments
Definition at line 317 of file SVFValue.h.
◆ intrinsic
bool SVF::SVFFunction::intrinsic |
|
private |
return true if this function does not have a body
Definition at line 312 of file SVFValue.h.
◆ isDecl
bool SVF::SVFFunction::isDecl |
|
private |
◆ isNotRet
bool SVF::SVFFunction::isNotRet |
|
private |
return true if this function is never called
Definition at line 315 of file SVFValue.h.
◆ isUncalled
bool SVF::SVFFunction::isUncalled |
|
private |
return true if this function is address-taken (for indirect call purposes)
Definition at line 314 of file SVFValue.h.
◆ loopAndDom
FunctionType, which is different from the type (PointerType) of this SVFFunction.
Definition at line 318 of file SVFValue.h.
◆ realDefFun
the loop and dominate information
Definition at line 319 of file SVFValue.h.
◆ varArg
bool SVF::SVFFunction::varArg |
|
private |
return true if this function never returns
Definition at line 316 of file SVFValue.h.
The documentation for this class was generated from the following files: