|
struct | add_const_past_pointer |
|
struct | add_const_past_pointer< T, std::enable_if_t< std::is_pointer< T >::value > > |
|
struct | add_lvalue_reference_if_not_pointer |
| If T is a pointer, just return it. If it is not, return T&. More...
|
|
struct | add_lvalue_reference_if_not_pointer< T, std::enable_if_t< std::is_pointer< T >::value > > |
|
struct | cast_convert_val |
|
struct | cast_convert_val< To, FromTy, FromTy > |
|
struct | cast_retty |
|
struct | cast_retty_impl |
|
struct | cast_retty_impl< To, const From * > |
|
struct | cast_retty_impl< To, const From *const > |
|
struct | cast_retty_impl< To, const From > |
|
struct | cast_retty_impl< To, From * > |
|
struct | cast_retty_impl< To, std::unique_ptr< From > > |
|
struct | cast_retty_wrap |
|
struct | cast_retty_wrap< To, FromTy, FromTy > |
|
struct | equalNodeBS |
|
struct | equalPointsTo |
|
struct | is_iterable |
| Type trait that checks if a type is iterable (can be applied on a range-based for loop) More...
|
|
struct | is_iterable< T, void_t< decltype(std::begin(std::declval< T & >()) !=std::end(std::declval< T & >()))> > |
|
struct | is_map |
| Type trait to check if a type is a map or unordered_map. More...
|
|
struct | is_map< std::map< Ts... > > |
|
struct | is_map< std::unordered_map< Ts... > > |
|
struct | is_sequence_container |
| Type trait to check if a type is vector or list. More...
|
|
struct | is_sequence_container< std::deque< Ts... > > |
|
struct | is_sequence_container< std::list< Ts... > > |
|
struct | is_sequence_container< std::vector< Ts... > > |
|
struct | is_set |
| Type trait to check if a type is a set or unordered_set. More...
|
|
struct | is_set< std::set< Ts... > > |
|
struct | is_set< std::unordered_set< Ts... > > |
|
struct | is_simple_type |
|
struct | isa_impl |
|
struct | isa_impl< To, From, std::enable_if_t< std::is_base_of< To, From >::value > > |
| Always allow upcasts, and perform no dynamic check for them. More...
|
|
struct | isa_impl_cl |
|
struct | isa_impl_cl< To, const From * > |
|
struct | isa_impl_cl< To, const From *const > |
|
struct | isa_impl_cl< To, const From > |
|
struct | isa_impl_cl< To, const std::unique_ptr< From > > |
|
struct | isa_impl_cl< To, From * > |
|
struct | isa_impl_cl< To, From *const > |
|
struct | isa_impl_wrap |
|
struct | isa_impl_wrap< To, FromTy, FromTy > |
|
struct | make_void |
| void_t is not available until C++17. We define it here for C++11/14. More...
|
|
struct | simplify_type |
|
struct | simplify_type< const From > |
|
|
template<class X , class Y > |
LLVM_NODISCARD bool | isa (const Y &Val) |
|
template<typename First , typename Second , typename... Rest, typename Y > |
LLVM_NODISCARD bool | isa (const Y &Val) |
|
template<class X , class Y > |
std::enable_if_t<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type > | cast (const Y &Val) |
|
template<class X , class Y > |
cast_retty< X, Y >::ret_type | cast (Y &Val) |
|
template<class X , class Y > |
cast_retty< X, Y * >::ret_type | cast (Y *Val) |
|
template<class X , class Y > |
cast_retty< X, std::unique_ptr< Y > >::ret_type | cast (std::unique_ptr< Y > &&Val) |
|
template<class X , class Y > |
LLVM_NODISCARD std::enable_if_t<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type > | dyn_cast (const Y &Val) |
|
template<class X , class Y > |
LLVM_NODISCARD cast_retty< X, Y >::ret_type | dyn_cast (Y &Val) |
|
template<class X , class Y > |
LLVM_NODISCARD cast_retty< X, Y * >::ret_type | dyn_cast (Y *Val) |
|
std::ostream & | outs () |
| Overwrite llvm::outs()
|
|
std::ostream & | errs () |
| Overwrite llvm::errs()
|
|
void | dumpSet (NodeBS To, OutStream &O=SVFUtil::outs()) |
| Dump sparse bitvector set.
|
|
void | dumpSet (PointsTo To, OutStream &O=SVFUtil::outs()) |
|
void | dumpPointsToSet (unsigned node, NodeBS To) |
| Dump points-to set.
|
|
void | dumpSparseSet (const NodeBS &To) |
|
void | dumpAliasSet (unsigned node, NodeBS To) |
| Dump alias set.
|
|
std::string | sucMsg (const std::string &msg) |
| Returns successful message by converting a string into green string output.
|
|
std::string | wrnMsg (const std::string &msg) |
| Returns warning message by converting a string into yellow string output.
|
|
void | writeWrnMsg (const std::string &msg) |
| Writes a message run through wrnMsg.
|
|
std::string | errMsg (const std::string &msg) |
| Print error message by converting a string into red string output.
|
|
std::string | bugMsg1 (const std::string &msg) |
|
std::string | bugMsg2 (const std::string &msg) |
|
std::string | bugMsg3 (const std::string &msg) |
|
std::string | pasMsg (const std::string &msg) |
| Print each pass/phase message by converting a string into blue string output.
|
|
void | reportMemoryUsageKB (const std::string &infor, OutStream &O=SVFUtil::outs()) |
| Print memory usage in KB.
|
|
bool | getMemoryUsageKB (u32_t *vmrss_kb, u32_t *vmsize_kb) |
| Get memory usage from system file. Return TRUE if succeed.
|
|
void | increaseStackSize () |
| Increase the stack size limit.
|
|
bool | cmpPts (const PointsTo &lpts, const PointsTo &rpts) |
|
bool | cmpNodeBS (const NodeBS &lpts, const NodeBS &rpts) |
|
NodeBS | ptsToNodeBS (const PointsTo &pts) |
|
void | dumpPointsToList (const PointsToList &ptl) |
|
bool | isIntrinsicInst (const SVFInstruction *inst) |
| Return true if it is an llvm intrinsic instruction.
|
|
bool | isIntrinsicInst (const ICFGNode *inst) |
|
bool | isCallSite (const SVFValue *val) |
| Whether an instruction is a call or invoke instruction.
|
|
bool | isCallSite (const ICFGNode *inst) |
|
bool | isRetInstNode (const ICFGNode *node) |
|
bool | isNonInstricCallSite (const ICFGNode *inst) |
| Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls.
|
|
bool | matchArgs (const CallICFGNode *cs, const SVFFunction *callee) |
|
std::vector< std::string > | split (const std::string &s, char separator) |
| Split into two substrings around the first occurrence of a separator string.
|
|
template<typename Data > |
void | mergePtsOccMaps (Map< Data, unsigned > &to, const Map< Data, unsigned > from) |
| Given a map mapping points-to sets to a count, adds from into to.
|
|
std::string | hclustMethodToString (hclust_fast_methods method) |
| Returns a string representation of a hclust method.
|
|
template<typename Key , typename KeySet > |
void | insertKey (const Key &key, KeySet &keySet) |
| Inserts an element into a Set/CondSet (with ::insert).
|
|
void | insertKey (const NodeID &key, NodeBS &keySet) |
| Inserts a NodeID into a NodeBS.
|
|
template<typename Key , typename KeySet > |
void | removeKey (const Key &key, KeySet &keySet) |
| Removes an element from a Set/CondSet (or anything implementing erase).
|
|
void | removeKey (const NodeID &key, NodeBS &keySet) |
| Removes a NodeID from a NodeBS.
|
|
void | timeLimitReached (int signum) |
| Function to call when alarm for time limit hits.
|
|
bool | startAnalysisLimitTimer (unsigned timeLimit) |
|
void | stopAnalysisLimitTimer (bool limitTimerSet) |
|
bool | isExtCall (const SVFFunction *fun) |
|
bool | isMemcpyExtFun (const SVFFunction *fun) |
|
bool | isMemsetExtFun (const SVFFunction *fun) |
|
bool | isHeapAllocExtFunViaRet (const SVFFunction *fun) |
| Return true if the call is a heap allocator/reallocator.
|
|
bool | isHeapAllocExtFunViaArg (const SVFFunction *fun) |
|
u32_t | getHeapAllocHoldingArgPosition (const SVFFunction *fun) |
| Get the position of argument that holds an allocated heap object.
|
|
bool | isReallocExtFun (const SVFFunction *fun) |
| Return true if the call is a heap reallocator.
|
|
bool | isProgEntryFunction (const SVFFunction *fun) |
| Program entry function e.g. main.
|
|
const SVFFunction * | getProgFunction (const std::string &funName) |
| Get program entry function from function name.
|
|
const SVFFunction * | getProgEntryFunction () |
| Get program entry function.
|
|
bool | isProgExitFunction (const SVFFunction *fun) |
| Return true if this is a program exit function call.
|
|
bool | isArgOfUncalledFunction (const SVFValue *svfval) |
| Return true if this argument belongs to an uncalled function.
|
|
const ObjVar * | getObjVarOfValVar (const ValVar *valVar) |
|
const ValVar * | getForkedFun (const CallICFGNode *inst) |
| Return thread fork function.
|
|
bool | isExtCall (const CallICFGNode *cs) |
|
bool | isExtCall (const ICFGNode *node) |
|
bool | isHeapAllocExtCallViaArg (const CallICFGNode *cs) |
|
bool | isHeapAllocExtCallViaRet (const CallICFGNode *cs) |
| interfaces to be used externally
|
|
bool | isHeapAllocExtCall (const ICFGNode *cs) |
|
u32_t | getHeapAllocHoldingArgPosition (const CallICFGNode *cs) |
|
bool | isReallocExtCall (const CallICFGNode *cs) |
|