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

Low-level memory addressing. More...

#include <tree_node.hpp>

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

Public Types

enum  {
  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_ref461 (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 base
 BASE register. More...
 
tree_nodeRef offset
 OFFSET integer constant. More...
 
tree_nodeRef idx
 INDEX register. More...
 
tree_nodeRef step
 STEP integer constant. More...
 
tree_nodeRef idx2
 INDEX register. 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 BASE (address of static or global variable or register), OFFSET (integer constant), INDEX (register), STEP (integer constant), INDEX2 (register), The corresponding address is BASE + STEP * INDEX + INDEX2 + OFFSET. Only variations and values valid on the target are allowed.

The type of STEP, INDEX and INDEX2 is sizetype.

The type of BASE is a pointer type. If BASE is not an address of a static or global variable INDEX2 will be NULL.

The type of OFFSET is a pointer type and determines TBAA the same as the constant offset operand in MEM_REF.

Definition at line 4938 of file tree_node.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

visitor enum

Enumerator
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 

Definition at line 4976 of file tree_node.hpp.

Constructor & Destructor Documentation

◆ target_mem_ref461()

target_mem_ref461::target_mem_ref461 ( unsigned int  i)
inlineexplicit

constructor

Definition at line 4941 of file tree_node.hpp.

Member Function Documentation

◆ visit()

void target_mem_ref461::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 1563 of file tree_node.cpp.

References ALL_VISIT, offset, 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_ref461::base

◆ idx

tree_nodeRef target_mem_ref461::idx

◆ idx2

tree_nodeRef target_mem_ref461::idx2

◆ offset

tree_nodeRef target_mem_ref461::offset

◆ step

tree_nodeRef target_mem_ref461::step

◆ type

tree_nodeRef target_mem_ref461::type

type of the expression

Definition at line 4946 of file tree_node.hpp.

Referenced by IR_lowering::expand_target_mem_ref(), and 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