PandA-2024.02
|
Public Member Functions | |
VarNode (const tree_nodeConstRef &_V, unsigned int _function_id) | |
The ctor. More... | |
~VarNode ()=default | |
VarNode (const VarNode &)=delete | |
VarNode (VarNode &&)=delete | |
VarNode & | operator= (const VarNode &)=delete |
VarNode & | operator= (VarNode &&)=delete |
void | init (bool outside) |
Initializes the value of the node. More... | |
RangeConstRef | getRange () const |
Returns the range of the variable represented by this node. More... | |
const tree_nodeConstRef & | getValue () const |
Returns the variable represented by this node. More... | |
unsigned int | getFunctionId () const |
bw_t | getBitWidth () const |
void | setRange (const RangeConstRef &newInterval) |
Changes the status of the variable represented by this node. More... | |
RangeRef | getMaxRange () const |
char | getAbstractState () |
void | storeAbstractState () |
int | updateIR (const tree_managerRef &TM, int debug_level, application_managerRef AppM) |
void | print (std::ostream &OS) const |
Pretty print. More... | |
std::string | ToString () const |
Private Attributes | |
const tree_nodeConstRef | V |
The program variable. More... | |
unsigned int | function_id |
ID of the associated function. More... | |
RangeConstRef | interval |
A Range associated to the variable, that is, its interval inferred by the analysis. More... | |
char | abstractState |
Used by the crop meet operator. More... | |
Definition at line 1184 of file Range_Analysis.cpp.
|
explicit |
The ctor.
Definition at line 1252 of file Range_Analysis.cpp.
References interval, THROW_ASSERT, and Unknown.
|
default |
|
delete |
|
delete |
|
inline |
Definition at line 1237 of file Range_Analysis.cpp.
References print(), and ToString().
Referenced by Meet::crop().
|
inline |
Definition at line 1221 of file Range_Analysis.cpp.
Referenced by UnaryOpNode::eval(), BinaryOpNode::eval(), UnaryOpNode::printDot(), and TernaryOpNode::TernaryOpNode().
|
inline |
Definition at line 1217 of file Range_Analysis.cpp.
|
inline |
Definition at line 1232 of file Range_Analysis.cpp.
References Regular.
|
inline |
Returns the range of the variable represented by this node.
Definition at line 1208 of file Range_Analysis.cpp.
Referenced by Meet::crop(), UnaryOpNode::eval(), SigmaOpNode::eval(), BinaryOpNode::eval(), TernaryOpNode::eval(), Meet::fixed(), Meet::growth(), Meet::narrow(), print(), SymbRange::solveFuture(), and Meet::widen().
|
inline |
Returns the variable represented by this node.
Definition at line 1213 of file Range_Analysis.cpp.
Referenced by BinaryOpNode::BinaryOpNode(), UnaryOpNode::eval(), UnaryOpNode::getSources(), SigmaOpNode::getSources(), BinaryOpNode::getSources(), TernaryOpNode::getSources(), ControlDepNode::getSources(), LoadOpNode::opCtorGenerator(), PhiOpNode::printDot(), UnaryOpNode::printDot(), SigmaOpNode::printDot(), BinaryOpNode::printDot(), TernaryOpNode::printDot(), LoadOpNode::printDot(), NodeContainer::pushOperation(), and SymbRange::solveFuture().
void VarNode::init | ( | bool | outside | ) |
Initializes the value of the node.
Definition at line 1261 of file Range_Analysis.cpp.
References GET_CONST_NODE, interval, Regular, THROW_ASSERT, and Unknown.
void VarNode::print | ( | std::ostream & | OS | ) | const |
Pretty print.
Definition at line 1467 of file Range_Analysis.cpp.
References GET_CONST_NODE, tree_helper::GetConstValue(), and getRange().
Referenced by operator<<(), ValueRange::setRange(), and ToString().
|
inline |
Changes the status of the variable represented by this node.
Definition at line 1227 of file Range_Analysis.cpp.
Referenced by Meet::crop(), Meet::fixed(), Meet::growth(), Meet::narrow(), and Meet::widen().
void VarNode::storeAbstractState | ( | ) |
Definition at line 1488 of file Range_Analysis.cpp.
References abstractState, interval, Range::Max, Range::Min, and THROW_ASSERT.
std::string VarNode::ToString | ( | ) | const |
Definition at line 1481 of file Range_Analysis.cpp.
References print().
Referenced by ValueRange::setRange().
int VarNode::updateIR | ( | const tree_managerRef & | TM, |
int | debug_level, | ||
application_managerRef | AppM | ||
) |
Definition at line 1278 of file Range_Analysis.cpp.
References ssa_name::bit_values, bitstring_to_string(), Bit_Value_opt::constrainSSA(), DEBUG_LEVEL_VERY_PEDANTIC, GET_CONST_NODE, GET_INDEX_CONST_NODE, GET_NODE, tree_manager::GetTreeReindex(), INDENT_DBG_MEX, interval, BitLatticeManipulator::isBetter(), Range::neededBits(), STR, string_to_bitstring(), BitLatticeManipulator::sup(), tree_node::ToString(), ssa_name::type, U, ut_BitValue, ut_None, and ut_Range.
|
private |
Used by the crop meet operator.
Definition at line 1195 of file Range_Analysis.cpp.
Referenced by storeAbstractState().
|
private |
ID of the associated function.
Definition at line 1189 of file Range_Analysis.cpp.
|
private |
A Range associated to the variable, that is, its interval inferred by the analysis.
Definition at line 1192 of file Range_Analysis.cpp.
Referenced by init(), storeAbstractState(), updateIR(), and VarNode().
|
private |
The program variable.
Definition at line 1187 of file Range_Analysis.cpp.