PandA-2024.02
|
struct definition of the common part of a gimple with virtual operands More...
#include <tree_node.hpp>
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_nodeRef > | pragmas |
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... | |
struct definition of the common part of a gimple with virtual operands
Definition at line 1078 of file tree_node.hpp.
anonymous enum |
visitor enum
Enumerator | |
---|---|
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID |
Definition at line 1146 of file tree_node.hpp.
|
explicit |
bool gimple_node::AddVover | ( | const tree_nodeRef & | vover | ) |
Add a vover.
vover | is the vover |
Definition at line 332 of file tree_node.cpp.
References GET_CONST_NODE, tree_node::get_kind(), THROW_ASSERT, and vovers.
bool gimple_node::AddVuse | ( | const tree_nodeRef & | vuse | ) |
Add a vuse.
vuse | is the vuse |
Definition at line 324 of file tree_node.cpp.
References GET_CONST_NODE, tree_node::get_kind(), THROW_ASSERT, and vuses.
void gimple_node::SetVdef | ( | const tree_nodeRef & | vdef | ) |
Add a vdef.
vdef | is the vdef |
Definition at line 316 of file tree_node.cpp.
References GET_CONST_NODE, tree_node::get_kind(), THROW_ASSERT, and vdef.
|
overridevirtual |
virtual function used to traverse the tree_node data structure.
v | is 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().
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.
unsigned int gimple_node::bb_index |
The basic block to which this gimple_node belongs.
Definition at line 1134 of file tree_node.hpp.
Referenced by gimple_phi::AddDefEdge(), lut_transformation::CheckIfPO(), OrderedBasicBlock::dominates(), OrderedInstructions::dominates(), gimple_phi::RemoveDefEdge(), gimple_phi::ReplaceDefEdge(), and raw_writer::write_when_not_null_point_to().
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().
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.
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().
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().
std::string gimple_node::operation |
The operation.
Definition at line 1137 of file tree_node.hpp.
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().
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().
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().
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().
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().
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().