PandA-2024.02
Public Types | Public Member Functions | Data Fields
target_mem_ref Struct Reference

Low-level memory addressing. More...

#include <tree_node.hpp>

Inheritance diagram for target_mem_ref:
Inheritance graph
[legend]
Collaboration diagram for target_mem_ref:
Collaboration graph
[legend]

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...
 

Detailed Description

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.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

visitor enum

Enumerator
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 

Definition at line 4909 of file tree_node.hpp.

Constructor & Destructor Documentation

◆ target_mem_ref()

target_mem_ref::target_mem_ref ( unsigned int  i)
inlineexplicit

constructor

Definition at line 4868 of file tree_node.hpp.

Member Function Documentation

◆ visit()

void target_mem_ref::visit ( tree_node_visitor *const  v) const
overridevirtual

Redefinition of get_kind_text.

Redefinition of get_kind. virtual function used to traverse the tree_node data structure.

Parameters
vis 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.

Here is the call graph for this function:

Field Documentation

◆ base

tree_nodeRef target_mem_ref::base

◆ idx

tree_nodeRef target_mem_ref::idx

◆ offset

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().

◆ orig

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().

◆ step

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().

◆ symbol

tree_nodeRef target_mem_ref::symbol

◆ tag

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().

◆ type

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().


The documentation for this struct was generated from the following files:

Generated on Mon Feb 12 2024 13:04:05 for PandA-2024.02 by doxygen 1.8.13