|
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) |
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 55 of file AbstractState.h.
Definition at line 61 of file AbstractState.h.
Definition at line 60 of file AbstractState.h.
|
inline |
|
inline |
Definition at line 67 of file AbstractState.h.
|
inline |
copy constructor
Definition at line 70 of file AbstractState.h.
|
virtualdefault |
|
inline |
|
inline |
Definition at line 274 of file AbstractState.h.
|
inline |
Set all value bottom.
Definition at line 108 of file AbstractState.h.
|
inline |
Definition at line 348 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 359 of file AbstractState.h.
| bool AbstractState::equals | ( | const AbstractState & | other | ) | const |
Definition at line 38 of file AbstractState.cpp.
| bool AbstractState::eqVarToValMap | ( | const VarToAbsValMap & | lhs, |
| const VarToAbsValMap & | rhs | ||
| ) | const |
Definition at line 318 of file AbstractState.cpp.
| bool AbstractState::geqVarToValMap | ( | const VarToAbsValMap & | lhs, |
| const VarToAbsValMap & | rhs | ||
| ) | const |
Definition at line 332 of file AbstractState.cpp.
Definition at line 279 of file AbstractState.h.
Return the internal index if addr is an address otherwise return the value of idx.
Definition at line 94 of file AbstractState.h.
|
inline |
get loc2val map
Definition at line 250 of file AbstractState.h.
|
inline |
get var2val map
Definition at line 244 of file AbstractState.h.
The physical address starts with 0x7f...... + idx.
Definition at line 82 of file AbstractState.h.
| u32_t AbstractState::hash | ( | ) | const |
Definition at line 43 of file AbstractState.cpp.
whether the memory address stores memory addresses
Definition at line 218 of file AbstractState.h.
whether the memory address stores abstract value
Definition at line 231 of file AbstractState.h.
Definition at line 163 of file AbstractState.cpp.
whether the variable is in varToAddrs table
Definition at line 196 of file AbstractState.h.
whether the variable is in varToVal table
Definition at line 207 of file AbstractState.h.
Definition at line 145 of file AbstractState.h.
Definition at line 284 of file AbstractState.h.
Definition at line 140 of file AbstractState.h.
Check bit value of val start with 0x7F000000, filter by 0xFF000000.
Definition at line 88 of file AbstractState.h.
| void AbstractState::joinWith | ( | const AbstractState & | other | ) |
domain join with other, important! other widen this.
Definition at line 103 of file AbstractState.cpp.
|
inlinevirtual |
Definition at line 173 of file AbstractState.h.
|
inlinevirtual |
Definition at line 180 of file AbstractState.h.
| void AbstractState::meetWith | ( | const AbstractState & | other | ) |
domain meet with other, important! other widen this.
Definition at line 135 of file AbstractState.cpp.
| AbstractState AbstractState::narrowing | ( | const AbstractState & | other | ) |
domain narrow with other, and return the narrowed domain
Definition at line 81 of file AbstractState.cpp.
|
inline |
Definition at line 333 of file AbstractState.h.
|
inline |
Definition at line 338 of file AbstractState.h.
|
inline |
operator= move constructor
Definition at line 316 of file AbstractState.h.
|
inline |
Assignment operator.
Definition at line 304 of file AbstractState.h.
|
inline |
Definition at line 327 of file AbstractState.h.
|
inline |
Definition at line 343 of file AbstractState.h.
|
inlinevirtual |
|
inlinevirtual |
| void AbstractState::printAbstractState | ( | ) | const |
Definition at line 208 of file AbstractState.cpp.
|
inline |
Copy some values and return a new IntervalExeState.
Definition at line 132 of file AbstractState.h.
|
inline |
Definition at line 187 of file AbstractState.h.
|
inline |
Set all value top.
Definition at line 120 of file AbstractState.h.
| std::string AbstractState::toString | ( | ) | const |
Definition at line 290 of file AbstractState.cpp.
|
inline |
Replace address-taken (ObjVar) state with other's, preserving ValVar state.
Definition at line 265 of file AbstractState.h.
| AbstractState AbstractState::widening | ( | const AbstractState & | other | ) |
domain widen with other, and return the widened domain
Definition at line 60 of file AbstractState.cpp.
|
friend |
Definition at line 58 of file AbstractState.h.
Definition at line 57 of file AbstractState.h.
|
protected |
Map a memory address to its stored abstract value.
Definition at line 153 of file AbstractState.h.
Definition at line 154 of file AbstractState.h.
|
protected |
Map a variable (symbol) to its abstract value.
Definition at line 152 of file AbstractState.h.