|
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 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 279 of file AbstractState.h.
|
inline |
Set all value bottom.
Definition at line 108 of file AbstractState.h.
|
inline |
Definition at line 353 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 364 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 284 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 255 of file AbstractState.h.
|
inline |
get var2val map
Definition at line 249 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 44 of file AbstractState.cpp.
whether the memory address stores memory addresses
Definition at line 223 of file AbstractState.h.
whether the memory address stores abstract value
Definition at line 236 of file AbstractState.h.
Definition at line 164 of file AbstractState.cpp.
whether the variable is in varToAddrs table
Definition at line 201 of file AbstractState.h.
whether the variable is in varToVal table
Definition at line 212 of file AbstractState.h.
Definition at line 145 of file AbstractState.h.
Definition at line 289 of file AbstractState.h.
Definition at line 140 of file AbstractState.h.
Whether addr has no concrete backing memory object.
Definition at line 151 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 104 of file AbstractState.cpp.
|
inlinevirtual |
Definition at line 179 of file AbstractState.h.
|
inlinevirtual |
Definition at line 186 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 338 of file AbstractState.h.
|
inline |
Definition at line 343 of file AbstractState.h.
|
inline |
operator= move constructor
Definition at line 321 of file AbstractState.h.
|
inline |
Assignment operator.
Definition at line 309 of file AbstractState.h.
|
inline |
Definition at line 332 of file AbstractState.h.
|
inline |
Definition at line 348 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 132 of file AbstractState.h.
|
inline |
Definition at line 193 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 291 of file AbstractState.cpp.
|
inline |
Replace address-taken (ObjVar) state with other's, preserving ValVar state.
Definition at line 270 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 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 159 of file AbstractState.h.
Definition at line 160 of file AbstractState.h.
|
protected |
Map a variable (symbol) to its abstract value.
Definition at line 158 of file AbstractState.h.