117 return !(*
this ==
rhs);
130template<
class LocCond>
173 return this->
cur < rhs.
cur;
175 return this->curloc <
rhs.curloc;
183 this->curloc =
rhs.getLoc();
190 return (this->
cur == rhs.
cur &&
this->curloc ==
rhs.getLoc());
195 return !(*
this==
rhs);
225 context = std::move(cond.context);
347 return !(*
this==
rhs);
388template<
class LocCond>
440 return this->
cur < rhs.
cur;
452 this->context =
rhs.getCond();
464 return !(*
this==
rhs);
558 return !(*
this ==
rhs);
566struct std::hash<
SVF::CxtDPItem>
576template <
typename LocCond>
577struct std::hash<
SVF::StmtDPItem<LocCond>>
587template<
class LocCond>
588struct std::hash<
SVF::CxtStmtDPItem<LocCond>>
600struct std::hash<const
SVF::ContextCond>
604 std::hash<SVF::CallStrCxt> h;
610struct std::hash<
SVF::ContextCond>
614 std::hash<SVF::CallStrCxt> h;
static void setMaxPathLen(u32_t max)
set max path limit
CallStrCxt::const_iterator const_iterator
u32_t cxtSize() const
Get context size.
static u32_t maximumCxtLen
bool operator!=(const ContextCond &rhs) const
Overloading operator!=.
const CallStrCxt & getContexts() const
Get context.
const_iterator begin() const
Begin iterators.
const_iterator end() const
End iterators.
bool operator<(const ContextCond &rhs) const
ContextCond(const ContextCond &cond)
Copy Constructor.
std::string toString() const
Dump context condition.
NodeID operator[](const u32_t index) const
Overloading operator[].
bool operator==(const ContextCond &rhs) const
Overloading operator==.
bool containCallStr(NodeID cxt) const
Whether contains callstring cxt.
ContextCond & operator=(ContextCond &&cond) noexcept
Move operator=.
CallStrCxt & getContexts()
Get context.
static void setMaxCxtLen(u32_t max)
set max context limit
u32_t getMaxPathLen() const
ContextCond()
Constructor.
ContextCond(ContextCond &&cond) noexcept
Move Constructor.
static u32_t maximumPathLen
virtual bool matchContext(NodeID ctx)
Match context.
bool isConcreteCxt() const
Whether it is an concrete context.
void setNonConcreteCxt()
Whether it is an concrete context.
virtual ~ContextCond()
Destructor.
virtual bool pushContext(NodeID ctx)
Push context.
CxtDPItem(const CxtVar &var)
void pushContext(NodeID cxt)
Push context.
bool operator==(const CxtDPItem &rhs) const
Overloading Operator==.
CxtDPItem(const CxtDPItem &dps)
Copy constructor.
CxtDPItem(NodeID c, const ContextCond &cxt)
Constructor.
bool operator<(const CxtDPItem &rhs) const
const ContextCond & getContexts() const
Get context.
CxtDPItem(CxtDPItem &&dps) noexcept
Move constructor.
virtual ~CxtDPItem()
Destructor.
bool operator!=(const CxtDPItem &rhs) const
Overloading Operator!=.
virtual bool matchContext(NodeID cxt)
Match context.
CxtDPItem & operator=(CxtDPItem &&dps) noexcept
Move operator=.
virtual ~CxtStmtDPItem()
Destructor.
bool operator==(const CxtStmtDPItem< LocCond > &rhs) const
Overloading operator==.
bool operator!=(const CxtStmtDPItem< LocCond > &rhs) const
Overloading operator==.
bool operator<(const CxtStmtDPItem< LocCond > &rhs) const
bool matchContext(NodeID cxt)
Match context.
bool pushContext(NodeID cxt)
Push context.
CxtStmtDPItem(const CxtStmtDPItem< LocCond > &dps)
Copy constructor.
CxtStmtDPItem(const CxtVar &var, const LocCond *locCond)
Constructor.
ContextCond & getCond()
Get context.
CxtVar getCondVar() const
Get context var.
CxtStmtDPItem< LocCond > & operator=(const CxtStmtDPItem< LocCond > &rhs)
Overloading operator=.
const ContextCond & getCond() const
Get context.
NodeID getCurNodeID() const
virtual ~DPItem()
Destructor.
static u64_t maximumBudget
void setCurNodeID(NodeID c)
bool operator<(const DPItem &rhs) const
static void setMaxBudget(u32_t max)
set max step budge per query
DPItem(const DPItem &dps)
Copy constructor.
DPItem & operator=(DPItem &&rhs) noexcept
Move operator=.
DPItem(DPItem &&dps) noexcept
Move constructor.
DPItem(NodeID c)
Constructor.
bool operator==(const DPItem &rhs) const
Overloading Operator==.
bool operator!=(const DPItem &rhs) const
Overloading Operator!=.
static u32_t getMaxBudget()
StmtDPItem & operator=(const StmtDPItem &rhs)
Overloading operator==.
StmtDPItem(const StmtDPItem &dps)
Copy constructor.
const LocCond * getLoc() const
Get context.
void setLocVar(const LocCond *l, NodeID v)
Set location and pointer id.
virtual ~StmtDPItem()
Destructor.
void setLoc(const LocCond *l)
Set location.
bool operator!=(const StmtDPItem &rhs) const
Overloading operator!=.
StmtDPItem(NodeID c, const LocCond *locCond)
Constructor.
bool operator<(const StmtDPItem &rhs) const
bool operator==(const StmtDPItem &rhs) const
Overloading operator==.
std::ostream & outs()
Overwrite llvm::outs()
llvm::IRBuilder IRBuilder
CondVar< ContextCond > CxtVar
std::vector< u32_t > CallStrCxt
CondStdSet< CxtVar > CxtPtSet
size_t operator()(const SVF::ContextCond &cc) const
size_t operator()(const SVF::CxtDPItem &cdpi) const
size_t operator()(const SVF::CxtStmtDPItem< LocCond > &csdpi) const
size_t operator()(const SVF::StmtDPItem< LocCond > &sdpi) const
size_t operator()(const SVF::ContextCond &cc) const