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

struct definition of the common part of a gimple with virtual operands More...

#include <tree_node.hpp>

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

Public Types

enum  {
  GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0,
  GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0,
  GETID =(srcp) = 0, GETID =(srcp) = 0
}
 visitor enum More...
 
- Public Types inherited from WeightedNode
enum  { GETID =(tree_node) = 0 }
 visitor enum More...
 

Public Member Functions

 gimple_node (unsigned int i)
 Constructor. More...
 
void SetVdef (const tree_nodeRef &vdef)
 Add a vdef. More...
 
bool AddVuse (const tree_nodeRef &vuse)
 Add a vuse. More...
 
bool AddVover (const tree_nodeRef &vover)
 Add a vover. More...
 
void visit (tree_node_visitor *const v) const override
 virtual function used to traverse the tree_node data structure. More...
 
- Public Member Functions inherited from srcp
 srcp ()
 constructor More...
 
virtual ~srcp ()
 Destructor. 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 memuse
 whole memory operand use More...
 
tree_nodeRef memdef
 whole memory operand def More...
 
tree_nodeRef vdef
 vdef of this statement More...
 
TreeNodeSet vuses
 vuses of this statement More...
 
TreeNodeSet vovers
 vovers of this statement More...
 
std::vector< tree_nodeRefpragmas
 list of pragmas associated to the function More...
 
PointToSolutionRef use_set
 The point-to set used by this gimple node. More...
 
PointToSolutionRef clobbered_set
 The clobbered set of this gimple node. More...
 
tree_nodeRef scpe
 The function to which this gimple_node belongs. More...
 
unsigned int bb_index
 The basic block to which this gimple_node belongs. More...
 
std::string operation
 The operation. More...
 
bool artificial
 this field is true if the gimple_node was created artificially to handle some specific situations, like for example handling functions returning structs by value or accepting structs by value as parameters More...
 
bool keep
 when true CSE and Bit Value optimization will not remove from the IR More...
 
- Data Fields inherited from srcp
std::string include_name
 include_name is a filename string, this can be the location of a reference, if no definition has been seen. More...
 
unsigned int line_number
 line_number holds a line number. More...
 
unsigned int column_number
 column_number holds the column number. 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

struct definition of the common part of a gimple with virtual operands

Definition at line 1078 of file tree_node.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

visitor enum

Enumerator
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 

Definition at line 1146 of file tree_node.hpp.

Constructor & Destructor Documentation

◆ gimple_node()

gimple_node::gimple_node ( unsigned int  i)
explicit

Constructor.

Parameters
iis the index of the node

Definition at line 306 of file tree_node.cpp.

Member Function Documentation

◆ AddVover()

bool gimple_node::AddVover ( const tree_nodeRef vover)

Add a vover.

Parameters
voveris the vover
Returns
bool True if vover has been added, false if vover already exists

Definition at line 332 of file tree_node.cpp.

References GET_CONST_NODE, tree_node::get_kind(), THROW_ASSERT, and vovers.

Here is the call graph for this function:

◆ AddVuse()

bool gimple_node::AddVuse ( const tree_nodeRef vuse)

Add a vuse.

Parameters
vuseis the vuse
Returns
bool True if vuse has been added, false if vuse already exists

Definition at line 324 of file tree_node.cpp.

References GET_CONST_NODE, tree_node::get_kind(), THROW_ASSERT, and vuses.

Here is the call graph for this function:

◆ SetVdef()

void gimple_node::SetVdef ( const tree_nodeRef vdef)

Add a vdef.

Parameters
vdefis the vdef

Definition at line 316 of file tree_node.cpp.

References GET_CONST_NODE, tree_node::get_kind(), THROW_ASSERT, and vdef.

Here is the call graph for this function:

◆ visit()

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

virtual function used to traverse the tree_node data structure.

Parameters
vis a reference to the tree_node visitor class

Reimplemented from WeightedNode.

Reimplemented in gimple_switch, gimple_return, gimple_resx, gimple_predict, gimple_phi, gimple_label, gimple_goto, gimple_nop, gimple_assign, gimple_cond, gimple_call, and gimple_asm.

Definition at line 340 of file tree_node.cpp.

References ALL_VISIT, clobbered_set, memdef, memuse, scpe, SEQ_VISIT_MEMBER, use_set, vdef, VISIT_MEMBER, VISIT_SC, vovers, and vuses.

Referenced by unary_expr::visit(), binary_expr::visit(), ternary_expr::visit(), and quaternary_expr::visit().

Here is the caller graph for this function:

Field Documentation

◆ artificial

bool gimple_node::artificial

this field is true if the gimple_node was created artificially to handle some specific situations, like for example handling functions returning structs by value or accepting structs by value as parameters

Definition at line 1166 of file tree_node.hpp.

◆ bb_index

unsigned int gimple_node::bb_index

◆ clobbered_set

PointToSolutionRef gimple_node::clobbered_set

The clobbered set of this gimple node.

Definition at line 1128 of file tree_node.hpp.

Referenced by visit(), and raw_writer::write_when_not_null_point_to().

◆ keep

bool gimple_node::keep

when true CSE and Bit Value optimization will not remove from the IR

Definition at line 1169 of file tree_node.hpp.

◆ memdef

tree_nodeRef gimple_node::memdef

whole memory operand def

Definition at line 1090 of file tree_node.hpp.

Referenced by visit(), and raw_writer::write_when_not_null_point_to().

◆ memuse

tree_nodeRef gimple_node::memuse

whole memory operand use

Definition at line 1087 of file tree_node.hpp.

Referenced by visit(), and raw_writer::write_when_not_null_point_to().

◆ operation

std::string gimple_node::operation

The operation.

Definition at line 1137 of file tree_node.hpp.

◆ pragmas

std::vector<tree_nodeRef> gimple_node::pragmas

list of pragmas associated to the function

Definition at line 1122 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ scpe

tree_nodeRef gimple_node::scpe

The function to which this gimple_node belongs.

Definition at line 1131 of file tree_node.hpp.

Referenced by visit(), and raw_writer::write_when_not_null_point_to().

◆ use_set

PointToSolutionRef gimple_node::use_set

The point-to set used by this gimple node.

Definition at line 1125 of file tree_node.hpp.

Referenced by visit(), and raw_writer::write_when_not_null_point_to().

◆ vdef

tree_nodeRef gimple_node::vdef

vdef of this statement

Definition at line 1093 of file tree_node.hpp.

Referenced by VarComputation::AnalyzeVops(), SetVdef(), visit(), and raw_writer::write_when_not_null_point_to().

◆ vovers

TreeNodeSet gimple_node::vovers

vovers of this statement

Definition at line 1112 of file tree_node.hpp.

Referenced by AddVover(), VarComputation::AnalyzeVops(), visit(), and raw_writer::write_when_not_null_point_to().

◆ vuses

TreeNodeSet gimple_node::vuses

vuses of this statement

Definition at line 1102 of file tree_node.hpp.

Referenced by AddVuse(), VarComputation::AnalyzeVops(), visit(), 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:03:54 for PandA-2024.02 by doxygen 1.8.13