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

This struct specifies the gimple_asm node. More...

#include <tree_node.hpp>

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

Public Types

enum  { GETID =(gimple_node) = 0, GETID =(gimple_node) = 0, GETID =(gimple_node) = 0 }
 visitor enum More...
 
- Public Types inherited from gimple_node
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_asm (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 gimple_node
 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...
 
- 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

bool volatile_flag
 volatile_flag is true if the node is public: it means that the name is accessible from outside. More...
 
std::string str
 str is the operand 0: ASM_STRING. ASM_STRING returns a STRING_CST for the instruction (e.g., "mov x, y"). More...
 
tree_nodeRef out
 out is the operand 1: ASM_OUTPUTS, this represents the outputs for the statement. More...
 
tree_nodeRef in
 in is the operand 2: ASM_INPUTS, this represents the inputs for the statement. More...
 
tree_nodeRef clob
 clob is the operand 3: ASM_CLOBBERS, this represents the clobbers for the statement. More...
 
- Data Fields inherited from gimple_node
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

This struct specifies the gimple_asm node.

Used to represent an inline assembly statement. ASM_STRING returns a STRING_CST for the instruction (e.g., "mov x, y"). ASM_OUTPUTS, ASM_INPUTS, and ASM_CLOBBERS represent the outputs, inputs, and clobbers for the statement. The tree walker structure of this node is: #(TOK_GIMPLE_ASM type (TOK_VOLATILE)? str (out)? in (clob)?)

Definition at line 1574 of file tree_node.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

visitor enum

Enumerator
GETID 
GETID 
GETID 

Definition at line 1609 of file tree_node.hpp.

Constructor & Destructor Documentation

◆ gimple_asm()

gimple_asm::gimple_asm ( unsigned int  i)
inlineexplicit

constructor

Definition at line 1577 of file tree_node.hpp.

Member Function Documentation

◆ visit()

void gimple_asm::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 gimple_node.

Definition at line 447 of file tree_node.cpp.

References ALL_VISIT, type_node::visit(), VISIT_MEMBER, and VISIT_SC.

Here is the call graph for this function:

Field Documentation

◆ clob

tree_nodeRef gimple_asm::clob

clob is the operand 3: ASM_CLOBBERS, this represents the clobbers for the statement.

Definition at line 1594 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ in

tree_nodeRef gimple_asm::in

in is the operand 2: ASM_INPUTS, this represents the inputs for the statement.

Definition at line 1591 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ out

tree_nodeRef gimple_asm::out

out is the operand 1: ASM_OUTPUTS, this represents the outputs for the statement.

Definition at line 1588 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ str

std::string gimple_asm::str

str is the operand 0: ASM_STRING. ASM_STRING returns a STRING_CST for the instruction (e.g., "mov x, y").

Definition at line 1585 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ volatile_flag

bool gimple_asm::volatile_flag

volatile_flag is true if the node is public: it means that the name is accessible from outside.

Definition at line 1582 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:03:53 for PandA-2024.02 by doxygen 1.8.13