PandA-2024.02
|
Low-level memory addressing. More...
#include <tree_node.hpp>
Public Types | |
enum | { GETID =(WeightedNode) = 0, GETID =(WeightedNode) = 0, GETID =(WeightedNode) = 0, GETID =(WeightedNode) = 0, GETID =(WeightedNode) = 0, GETID =(WeightedNode) = 0, GETID =(WeightedNode) = 0, GETID =(WeightedNode) = 0 } |
visitor enum More... | |
Public Types inherited from WeightedNode | |
enum | { GETID =(tree_node) = 0 } |
visitor enum More... | |
Public Member Functions | |
target_mem_ref (unsigned int i) | |
constructor More... | |
void | visit (tree_node_visitor *const v) const override |
Redefinition of get_kind_text. More... | |
Public Member Functions inherited from WeightedNode | |
WeightedNode (unsigned int i) | |
Constructor. More... | |
Public Member Functions inherited from tree_node | |
tree_node (unsigned int i) | |
Constructor. More... | |
virtual | ~tree_node ()=default |
Destructor. More... | |
virtual enum kind | get_kind () const =0 |
Virtual function returning the type of the actual class. More... | |
virtual std::string | get_kind_text () const =0 |
Virtual function returning the name of the actual class. More... | |
std::string | ToString () const |
Print this node as string in gimple format. More... | |
Data Fields | |
tree_nodeRef | type |
type of the expression More... | |
tree_nodeRef | symbol |
static or global variable More... | |
tree_nodeRef | base |
BASE register. More... | |
tree_nodeRef | idx |
INDEX register. More... | |
tree_nodeRef | step |
STEP integer constant. More... | |
tree_nodeRef | offset |
OFFSET integer constant. More... | |
tree_nodeRef | orig |
original memory access More... | |
tree_nodeRef | tag |
result of the tree level alias analysis More... | |
Data Fields inherited from tree_node | |
const unsigned int | index |
Represent the index read from the raw file and the index-1 of the vector of tree_node associated to the functions vector present in the tree_manager. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from tree_node | |
static enum kind | get_kind (const std::string &name) |
Given a string, return the corresponding kind. More... | |
static std::string | GetString (const enum kind k) |
Given a kind, return the corresponding string. More... | |
Low-level memory addressing.
Operands are SYMBOL (static or global variable), BASE (register), INDEX (register), STEP (integer constant), OFFSET (integer constant). Corresponding address is SYMBOL + BASE + STEP * INDEX + OFFSET. Only variations and values valid on the target are allowed.
The type of STEP, INDEX and OFFSET is sizetype. The type of BASE is sizetype or a pointer type (if SYMBOL is NULL).
The sixth argument is the reference to the original memory access, which is preserved for the purposes of the RTL alias analysis. The seventh argument is a tag representing results of the tree level alias analysis.
Definition at line 4865 of file tree_node.hpp.
anonymous enum |
visitor enum
Enumerator | |
---|---|
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID |
Definition at line 4909 of file tree_node.hpp.
|
inlineexplicit |
constructor
Definition at line 4868 of file tree_node.hpp.
|
overridevirtual |
Redefinition of get_kind_text.
Redefinition of get_kind. virtual function used to traverse the tree_node data structure.
v | is a reference to the tree_node visitor class |
Reimplemented from WeightedNode.
Definition at line 1548 of file tree_node.cpp.
References ALL_VISIT, offset, decl_node::orig, decl_node::type, var_decl::visit(), VISIT_MEMBER, and VISIT_SC.
tree_nodeRef target_mem_ref::base |
BASE register.
Definition at line 4879 of file tree_node.hpp.
Referenced by tree_helper::get_array_var(), VarDeclFix::recursive_examinate(), and raw_writer::write_when_not_null_point_to().
tree_nodeRef target_mem_ref::idx |
INDEX register.
Definition at line 4882 of file tree_node.hpp.
Referenced by GimpleWriter::GimpleWriter(), VarDeclFix::recursive_examinate(), and raw_writer::write_when_not_null_point_to().
tree_nodeRef target_mem_ref::offset |
OFFSET integer constant.
Definition at line 4888 of file tree_node.hpp.
Referenced by GimpleWriter::GimpleWriter(), and raw_writer::write_when_not_null_point_to().
tree_nodeRef target_mem_ref::orig |
original memory access
Definition at line 4891 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
tree_nodeRef target_mem_ref::step |
STEP integer constant.
Definition at line 4885 of file tree_node.hpp.
Referenced by GimpleWriter::GimpleWriter(), and raw_writer::write_when_not_null_point_to().
tree_nodeRef target_mem_ref::symbol |
static or global variable
Definition at line 4876 of file tree_node.hpp.
Referenced by tree_helper::get_array_var(), GimpleWriter::GimpleWriter(), VarDeclFix::recursive_examinate(), and raw_writer::write_when_not_null_point_to().
tree_nodeRef target_mem_ref::tag |
result of the tree level alias analysis
Definition at line 4894 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
tree_nodeRef target_mem_ref::type |
type of the expression
Definition at line 4873 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().