|
Static Value-Flow Analysis
|
#include <AbstractState.h>
Public Types | |
| typedef Map< u32_t, AbstractValue > | VarToAbsValMap |
| typedef VarToAbsValMap | AddrToAbsValMap |
Static Public Member Functions | |
| static u32_t | getVirtualMemAddress (u32_t idx) |
| The physical address starts with 0x7f...... + idx. | |
| static bool | isVirtualMemAddress (u32_t val) |
| Check bit value of val start with 0x7F000000, filter by 0xFF000000. | |
| static bool | isNullMem (u32_t addr) |
| static bool | isBlackHoleObjAddr (u32_t addr) |
| static bool | isNullOrBlackHoleAddr (u32_t addr) |
| Whether addr has no concrete backing memory object. | |
Protected Attributes | |
| VarToAbsValMap | _varToAbsVal |
| Map a variable (symbol) to its abstract value. | |
| AddrToAbsValMap | _addrToAbsVal |
| Map a memory address to its stored abstract value. | |
| Set< NodeID > | _freedAddrs |
Friends | |
| class | SVFIR2AbsState |
| class | RelationSolver |
Definition at line 56 of file AbstractState.h.
Definition at line 62 of file AbstractState.h.
Definition at line 61 of file AbstractState.h.
|
inline |
|
inline |
Definition at line 68 of file AbstractState.h.
|
inline |
copy constructor
Definition at line 71 of file AbstractState.h.
|
virtualdefault |
|
inline |
|
inline |
Definition at line 282 of file AbstractState.h.
|
inline |
Set all value bottom.
Definition at line 109 of file AbstractState.h.
|
inline |
Definition at line 363 of file AbstractState.h.
|
inline |
Drop all top-level variables (ValVars), keeping ObjVar storage and freed addresses intact. Used when building a cycle snapshot so the ValVar set is controlled by the caller rather than whatever was cached at the seed node.
Definition at line 374 of file AbstractState.h.
| bool AbstractState::equals | ( | const AbstractState & | other | ) | const |
Definition at line 39 of file AbstractState.cpp.
| bool AbstractState::eqVarToValMap | ( | const VarToAbsValMap & | lhs, |
| const VarToAbsValMap & | rhs | ||
| ) | const |
Definition at line 319 of file AbstractState.cpp.
| bool AbstractState::geqVarToValMap | ( | const VarToAbsValMap & | lhs, |
| const VarToAbsValMap & | rhs | ||
| ) | const |
Definition at line 333 of file AbstractState.cpp.
Definition at line 287 of file AbstractState.h.
Return the internal index if addr is an address otherwise return the value of idx.
Definition at line 95 of file AbstractState.h.
|
inline |
get loc2val map
Definition at line 258 of file AbstractState.h.
|
inline |
get var2val map
Definition at line 252 of file AbstractState.h.
The physical address starts with 0x7f...... + idx.
Definition at line 83 of file AbstractState.h.
| u32_t AbstractState::hash | ( | ) | const |
Definition at line 44 of file AbstractState.cpp.
whether the memory address stores memory addresses
Definition at line 226 of file AbstractState.h.
whether the memory address stores abstract value
Definition at line 239 of file AbstractState.h.
Definition at line 164 of file AbstractState.cpp.
whether the variable is in varToAddrs table
Definition at line 204 of file AbstractState.h.
whether the variable is in varToVal table
Definition at line 215 of file AbstractState.h.
Definition at line 147 of file AbstractState.h.
Definition at line 292 of file AbstractState.h.
Definition at line 141 of file AbstractState.h.
Whether addr has no concrete backing memory object.
Definition at line 154 of file AbstractState.h.
Check bit value of val start with 0x7F000000, filter by 0xFF000000.
Definition at line 89 of file AbstractState.h.
| void AbstractState::joinWith | ( | const AbstractState & | other | ) |
domain join with other, important! other widen this.
Definition at line 104 of file AbstractState.cpp.
|
inlinevirtual |
Definition at line 182 of file AbstractState.h.
|
inlinevirtual |
Definition at line 189 of file AbstractState.h.
| void AbstractState::meetWith | ( | const AbstractState & | other | ) |
domain meet with other, important! other widen this.
Definition at line 136 of file AbstractState.cpp.
| AbstractState AbstractState::narrowing | ( | const AbstractState & | other | ) |
domain narrow with other, and return the narrowed domain
Definition at line 82 of file AbstractState.cpp.
|
inline |
Definition at line 342 of file AbstractState.h.
|
inline |
Definition at line 347 of file AbstractState.h.
|
inline |
operator= move constructor
Definition at line 324 of file AbstractState.h.
|
inline |
Assignment operator.
Definition at line 312 of file AbstractState.h.
|
inline |
Definition at line 335 of file AbstractState.h.
|
inline |
Definition at line 352 of file AbstractState.h.
|
inlinevirtual |
|
inlinevirtual |
| void AbstractState::printAbstractState | ( | ) | const |
Definition at line 209 of file AbstractState.cpp.
|
inline |
Copy some values and return a new IntervalExeState.
Definition at line 133 of file AbstractState.h.
|
inline |
Definition at line 196 of file AbstractState.h.
|
inline |
Set all value top.
Definition at line 121 of file AbstractState.h.
| std::string AbstractState::toString | ( | ) | const |
Definition at line 291 of file AbstractState.cpp.
|
inline |
Replace address-taken (ObjVar) state with other's, preserving ValVar state.
Definition at line 273 of file AbstractState.h.
| AbstractState AbstractState::widening | ( | const AbstractState & | other | ) |
domain widen with other, and return the widened domain
Definition at line 61 of file AbstractState.cpp.
|
friend |
Definition at line 59 of file AbstractState.h.
Definition at line 58 of file AbstractState.h.
|
protected |
Map a memory address to its stored abstract value.
Definition at line 162 of file AbstractState.h.
Definition at line 163 of file AbstractState.h.
|
protected |
Map a variable (symbol) to its abstract value.
Definition at line 161 of file AbstractState.h.