Skip to content

Commit

Permalink
rename API names in AE
Browse files Browse the repository at this point in the history
  • Loading branch information
jumormt committed Dec 2, 2023
1 parent b3cb909 commit 3d3f0a0
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 60 deletions.
4 changes: 2 additions & 2 deletions svf/include/AbstractExecution/ConsExeState.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,13 +179,13 @@ class ConsExeState final : public ExeState
}
//%}

virtual inline bool inVarToAddrsTable(u32_t id) const override
virtual inline bool inAddrsTable(u32_t id) const override
{
return _varToVAddrs.find(id) != _varToVAddrs.end() ||
globalConsES._varToVAddrs.find(id) != globalConsES._varToVAddrs.end();
}

virtual inline bool inLocToAddrsTable(u32_t id) const override
virtual inline bool locStoredAddrs(u32_t id) const override
{
return globalConsES._locToVAddrs.find(id) != globalConsES._locToVAddrs.end() || inLocalLocToAddrsTable(id);
}
Expand Down
4 changes: 2 additions & 2 deletions svf/include/AbstractExecution/ExeState.h
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,12 @@ class ExeState
return _locToVAddrs;
}

inline virtual bool inVarToAddrsTable(u32_t id) const
inline virtual bool inAddrsTable(u32_t id) const
{
return _varToVAddrs.find(id) != _varToVAddrs.end();
}

inline virtual bool inLocToAddrsTable(u32_t id) const
inline virtual bool locStoredAddrs(u32_t id) const
{
return _locToVAddrs.find(id) != _locToVAddrs.end();
}
Expand Down
8 changes: 4 additions & 4 deletions svf/include/AbstractExecution/IntervalExeState.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,19 +160,19 @@ class IntervalExeState : public ExeState
return globalES._varToVAddrs[id];
}

inline bool inVarToIValTable(u32_t id) const
inline bool inItvTable(u32_t id) const
{
return _varToItvVal.find(id) != _varToItvVal.end() ||
globalES._varToItvVal.find(id) != globalES._varToItvVal.end();
}

inline bool inVarToAddrsTable(u32_t id) const override
inline bool inAddrsTable(u32_t id) const override
{
return _varToVAddrs.find(id) != _varToVAddrs.end() ||
globalES._varToVAddrs.find(id) != globalES._varToVAddrs.end();
}

inline bool inLocToIValTable(u32_t id) const
inline bool locStoredItv(u32_t id) const
{
return _locToItvVal.find(id) != _locToItvVal.end() ||
globalES._locToItvVal.find(id) != globalES._locToItvVal.end();
Expand All @@ -183,7 +183,7 @@ class IntervalExeState : public ExeState
return _locToItvVal.find(id) != _locToItvVal.end();
}

inline bool inLocToAddrsTable(u32_t id) const override
inline bool locStoredAddrs(u32_t id) const override
{
return _locToVAddrs.find(id) != _locToVAddrs.end() ||
globalES._locToVAddrs.find(id) != globalES._locToVAddrs.end();
Expand Down
4 changes: 2 additions & 2 deletions svf/include/AbstractExecution/SVFIR2ConsExeState.h
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,12 @@ class SVFIR2ConsExeState

inline bool inVarToAddrsTable(u32_t id) const
{
return _es->inVarToAddrsTable(id);
return _es->inAddrsTable(id);
}

inline bool inLocToAddrsTable(u32_t id) const
{
return _es->inLocToAddrsTable(id);
return _es->locStoredAddrs(id);
}

protected:
Expand Down
18 changes: 9 additions & 9 deletions svf/include/AbstractExecution/SVFIR2ItvExeState.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,30 +105,30 @@ class SVFIR2ItvExeState

inline VAddrs &getVAddrs(u32_t id)
{
if (inVarToAddrsTable(id))
if (inAddrsTable(id))
return _es.getVAddrs(id);
else
return globalNullVaddrs;
}

inline bool inVarToIValTable(u32_t id) const
inline bool inItvTable(u32_t id) const
{
return _es.inVarToIValTable(id);
return _es.inItvTable(id);
}

inline bool inLocToIValTable(u32_t id) const
inline bool locStoredItv(u32_t id) const
{
return _es.inLocToIValTable(id);
return _es.locStoredItv(id);
}

inline bool inVarToAddrsTable(u32_t id) const
inline bool inAddrsTable(u32_t id) const
{
return _es.inVarToAddrsTable(id);
return _es.inAddrsTable(id);
}

inline bool inLocToAddrsTable(u32_t id) const
inline bool locStoredAddrs(u32_t id) const
{
return _es.inLocToAddrsTable(id);
return _es.locStoredAddrs(id);
}

void moveToGlobal();
Expand Down
6 changes: 3 additions & 3 deletions svf/lib/AbstractExecution/ConsExeState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ bool ConsExeState::applySelect(u32_t res, u32_t cond, u32_t top, u32_t fop)

return assign((*this)[res], ite(condExpr == 1, tExpr, fExpr));
}
else if (inVarToAddrsTable(top) && inVarToAddrsTable(fop) && inVarToVal(cond))
else if (inAddrsTable(top) && inAddrsTable(fop) && inVarToVal(cond))
{
SingleAbsValue &condExpr = (*this)[cond];
if (condExpr.is_numeral())
Expand Down Expand Up @@ -479,10 +479,10 @@ bool ConsExeState::applyPhi(u32_t res, std::vector<u32_t> &ops)
(*this)[res].join_with(cur);
}
}
else if (inVarToAddrsTable(curId))
else if (inAddrsTable(curId))
{
const VAddrs &cur = getVAddrs(curId);
if (!inVarToAddrsTable(res))
if (!inAddrsTable(res))
{
getVAddrs(res) = cur;
}
Expand Down
64 changes: 26 additions & 38 deletions svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ void SVFIR2ItvExeState::initObjVar(const ObjVar *objVar, u32_t varId)

void SVFIR2ItvExeState::initSVFVar(u32_t varId)
{
if (inVarToIValTable(varId) || _es.inVarToAddrsTable(varId)) return;
if (inItvTable(varId) || _es.inAddrsTable(varId)) return;
SVFIR *svfir = PAG::getPAG();
SVFVar *svfVar = svfir->getGNode(varId);
// write objvar into cache instead of exestate
Expand All @@ -498,7 +498,7 @@ void SVFIR2ItvExeState::initSVFVar(u32_t varId)
void SVFIR2ItvExeState::translateAddr(const AddrStmt *addr)
{
initSVFVar(addr->getRHSVarID());
if (inVarToIValTable(addr->getRHSVarID()))
if (inItvTable(addr->getRHSVarID()))
{
// if addr RHS is integerType(i8 i32 etc), value should be limited.
if (addr->getRHSVar()->getType()->getKind() == SVFType::SVFIntegerTy)
Expand All @@ -509,7 +509,7 @@ void SVFIR2ItvExeState::translateAddr(const AddrStmt *addr)
IntervalExeState::globalES[addr->getLHSVarID()] = IntervalExeState::globalES[addr->getRHSVarID()];

}
else if (inVarToAddrsTable(addr->getRHSVarID()))
else if (inAddrsTable(addr->getRHSVarID()))
{
IntervalExeState::globalES.getVAddrs(addr->getLHSVarID()) = IntervalExeState::globalES.getVAddrs(
addr->getRHSVarID());
Expand All @@ -526,9 +526,9 @@ void SVFIR2ItvExeState::translateBinary(const BinaryOPStmt *binary)
u32_t op0 = binary->getOpVarID(0);
u32_t op1 = binary->getOpVarID(1);
u32_t res = binary->getResID();
if (!inVarToIValTable(op0)) _es[op0] = IntervalValue::top();
if (!inVarToIValTable(op1)) _es[op1] = IntervalValue::top();
if (inVarToIValTable(op0) && inVarToIValTable(op1))
if (!inItvTable(op0)) _es[op0] = IntervalValue::top();
if (!inItvTable(op1)) _es[op1] = IntervalValue::top();
if (inItvTable(op0) && inItvTable(op1))
{
IntervalValue &lhs = _es[op0], &rhs = _es[op1];
IntervalValue resVal;
Expand Down Expand Up @@ -588,7 +588,7 @@ void SVFIR2ItvExeState::translateCmp(const CmpStmt *cmp)
u32_t op0 = cmp->getOpVarID(0);
u32_t op1 = cmp->getOpVarID(1);
u32_t res = cmp->getResID();
if (inVarToIValTable(op0) && inVarToIValTable(op1))
if (inItvTable(op0) && inItvTable(op1))
{
IntervalValue resVal;
IntervalValue &lhs = _es[op0], &rhs = _es[op1];
Expand Down Expand Up @@ -642,7 +642,7 @@ void SVFIR2ItvExeState::translateCmp(const CmpStmt *cmp)
}
_es[res] = resVal;
}
else if (inVarToAddrsTable(op0) && inVarToAddrsTable(op1))
else if (inAddrsTable(op0) && inAddrsTable(op1))
{
IntervalValue resVal;
VAddrs &lhs = getVAddrs(op0), &rhs = getVAddrs(op1);
Expand Down Expand Up @@ -771,7 +771,7 @@ void SVFIR2ItvExeState::translateLoad(const LoadStmt *load)
{
u32_t rhs = load->getRHSVarID();
u32_t lhs = load->getLHSVarID();
if (inVarToAddrsTable(rhs))
if (inAddrsTable(rhs))
{
VAddrs &addrs = getVAddrs(rhs);
assert(!addrs.empty());
Expand All @@ -781,20 +781,16 @@ void SVFIR2ItvExeState::translateLoad(const LoadStmt *load)
for (const auto &addr: addrs)
{
u32_t objId = getInternalID(addr);
if (inLocToIValTable(objId))
if (locStoredItv(objId))
{
rhsItv.join_with(_es.load(addr));
isItv = true;
}
else if (inLocToAddrsTable(objId))
else if (locStoredAddrs(objId))
{
rhsAddr.join_with(_es.loadVAddrs(addr));
isAddr = true;
}
else
{
// rhs not in table
}
}
if (isItv)
{
Expand All @@ -808,7 +804,7 @@ void SVFIR2ItvExeState::translateLoad(const LoadStmt *load)
}
else
{
// rhs not in table
// rhs not initialized, e.g., absence of a store before load
}
}
}
Expand All @@ -817,9 +813,9 @@ void SVFIR2ItvExeState::translateStore(const StoreStmt *store)
{
u32_t rhs = store->getRHSVarID();
u32_t lhs = store->getLHSVarID();
if (inVarToAddrsTable(lhs))
if (inAddrsTable(lhs))
{
if (inVarToIValTable(rhs))
if (inItvTable(rhs))
{
assert(!getVAddrs(lhs).empty());
VAddrs &addrs = getVAddrs(lhs);
Expand All @@ -828,7 +824,7 @@ void SVFIR2ItvExeState::translateStore(const StoreStmt *store)
_es.store(addr, _es[rhs]);
}
}
else if (inVarToAddrsTable(rhs))
else if (inAddrsTable(rhs))
{
assert(!getVAddrs(lhs).empty());
VAddrs &addrs = getVAddrs(lhs);
Expand All @@ -852,7 +848,7 @@ void SVFIR2ItvExeState::translateCopy(const CopyStmt *copy)
}
else
{
if (inVarToIValTable(rhs))
if (inItvTable(rhs))
{
_es[lhs] = _es[rhs];
// if copy LHS is integerType(i8 i32 etc), value should be limited.
Expand All @@ -864,7 +860,7 @@ void SVFIR2ItvExeState::translateCopy(const CopyStmt *copy)
getRangeLimitFromType(copy->getLHSVar()->getType()));
}
}
else if (inVarToAddrsTable(rhs))
else if (inAddrsTable(rhs))
{
assert(!getVAddrs(rhs).empty());
_es.getVAddrs(lhs) = getVAddrs(rhs);
Expand All @@ -876,7 +872,7 @@ void SVFIR2ItvExeState::translateGep(const GepStmt *gep)
{
u32_t rhs = gep->getRHSVarID();
u32_t lhs = gep->getLHSVarID();
if (!inVarToAddrsTable(rhs)) return;
if (!inAddrsTable(rhs)) return;
assert(!getVAddrs(rhs).empty());
VAddrs &rhsVal = getVAddrs(rhs);
if (rhsVal.empty()) return;
Expand Down Expand Up @@ -904,7 +900,7 @@ void SVFIR2ItvExeState::translateSelect(const SelectStmt *select)
u32_t tval = select->getTrueValue()->getId();
u32_t fval = select->getFalseValue()->getId();
u32_t cond = select->getCondition()->getId();
if (inVarToIValTable(tval) && inVarToIValTable(fval) && inVarToIValTable(cond))
if (inItvTable(tval) && inItvTable(fval) && inItvTable(cond))
{
if (_es[cond].is_numeral())
{
Expand All @@ -915,7 +911,7 @@ void SVFIR2ItvExeState::translateSelect(const SelectStmt *select)
_es[res] = _es[cond];
}
}
else if (inVarToAddrsTable(tval) && inVarToAddrsTable(fval) && inVarToIValTable(cond))
else if (inAddrsTable(tval) && inAddrsTable(fval) && inItvTable(cond))
{
if (_es[cond].is_numeral())
{
Expand All @@ -935,21 +931,17 @@ void SVFIR2ItvExeState::translatePhi(const PhiStmt *phi)
for (u32_t i = 0; i < phi->getOpVarNum(); i++)
{
NodeID curId = phi->getOpVarID(i);
if (inVarToIValTable(curId))
if (inItvTable(curId))
{
rhsItv.join_with(_es[curId]);
isItv = true;
}
else if (inVarToAddrsTable(curId))
else if (inAddrsTable(curId))
{
assert(!getVAddrs(curId).empty());
rhsAddr.join_with(getVAddrs(curId));
isAddr = true;
}
else
{
// rhs not in the table
}
}
if (isItv)
{
Expand All @@ -961,22 +953,18 @@ void SVFIR2ItvExeState::translatePhi(const PhiStmt *phi)
// res var is an address
_es.getVAddrs(res) = rhsAddr;
}
else
{
// rhs not in table
}
}


void SVFIR2ItvExeState::translateCall(const CallPE *callPE)
{
NodeID lhs = callPE->getLHSVarID();
NodeID rhs = callPE->getRHSVarID();
if (inVarToIValTable(rhs))
if (inItvTable(rhs))
{
_es[lhs] = _es[rhs];
}
else if (inVarToAddrsTable(rhs))
else if (inAddrsTable(rhs))
{
assert(!getVAddrs(rhs).empty());
_es.getVAddrs(lhs) = getVAddrs(rhs);
Expand All @@ -987,11 +975,11 @@ void SVFIR2ItvExeState::translateRet(const RetPE *retPE)
{
NodeID lhs = retPE->getLHSVarID();
NodeID rhs = retPE->getRHSVarID();
if (inVarToIValTable(rhs))
if (inItvTable(rhs))
{
_es[lhs] = _es[rhs];
}
else if (inVarToAddrsTable(rhs))
else if (inAddrsTable(rhs))
{
assert(!getVAddrs(rhs).empty());
_es.getVAddrs(lhs) = getVAddrs(rhs);
Expand Down

0 comments on commit 3d3f0a0

Please sign in to comment.