|
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 275 of file AbstractState.h.
|
inline |
Set all value bottom.
Definition at line 108 of file AbstractState.h.
|
inline |
Definition at line 344 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 355 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 325 of file AbstractState.cpp.
| bool AbstractState::geqVarToValMap | ( | const VarToAbsValMap & | lhs, |
| const VarToAbsValMap & | rhs | ||
| ) | const |
Definition at line 339 of file AbstractState.cpp.
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 44 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 170 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 280 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 104 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 142 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 329 of file AbstractState.h.
|
inline |
Definition at line 334 of file AbstractState.h.
|
inline |
operator= move constructor
Definition at line 312 of file AbstractState.h.
|
inline |
Assignment operator.
Definition at line 300 of file AbstractState.h.
|
inline |
Definition at line 323 of file AbstractState.h.
|
inline |
Definition at line 339 of file AbstractState.h.
|
inlinevirtual |
|
inlinevirtual |
| void AbstractState::printAbstractState | ( | ) | const |
Definition at line 215 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 297 of file AbstractState.cpp.
|
inline |
Replace address-taken (ObjVar) state with other's, preserving ValVar state.
Definition at line 266 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 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.