Jlm
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
jlm::rvsdg::SimpleNode Class Referencefinal

#include <simple-node.hpp>

Inheritance diagram for jlm::rvsdg::SimpleNode:
Inheritance graph
[legend]
Collaboration diagram for jlm::rvsdg::SimpleNode:
Collaboration graph
[legend]

Public Member Functions

 ~SimpleNode () override
 
NodeInputinput (size_t index) const noexcept
 
NodeOutputoutput (size_t index) const noexcept
 
const SimpleOperationGetOperation () const noexcept override
 
Nodecopy (Region *region, const std::vector< Output * > &operands) const override
 
Nodecopy (Region *region, SubstitutionMap &smap) const override
 Copy a node with substitutions. More...
 
std::string DebugString () const override
 
- Public Member Functions inherited from jlm::rvsdg::Node
virtual ~Node ()
 
 Node (Region *region)
 
Id GetNodeId () const noexcept
 
size_t ninputs () const noexcept
 
NodeInputinput (size_t index) const noexcept
 
InputIteratorRange Inputs () noexcept
 
InputConstIteratorRange Inputs () const noexcept
 
size_t noutputs () const noexcept
 
NodeOutputoutput (size_t index) const noexcept
 
OutputIteratorRange Outputs () noexcept
 
OutputConstIteratorRange Outputs () const noexcept
 
bool IsDead () const noexcept
 Determines whether the node is dead. More...
 
std::size_t numSuccessors () const noexcept
 
size_t RemoveInputs (const util::HashSet< size_t > &indices)
 
size_t RemoveOutputs (const util::HashSet< size_t > &indices)
 
Graphgraph () const noexcept
 
rvsdg::Regionregion () const noexcept
 
virtual Nodecopy (rvsdg::Region *region, const std::vector< jlm::rvsdg::Output * > &operands) const
 

Static Public Member Functions

static SimpleNodeCreate (Region &region, std::unique_ptr< Operation > operation, const std::vector< rvsdg::Output * > &operands)
 

Private Member Functions

 SimpleNode (rvsdg::Region &region, std::unique_ptr< SimpleOperation > operation, const std::vector< jlm::rvsdg::Output * > &operands)
 

Private Attributes

std::unique_ptr< SimpleOperationOperation_
 

Additional Inherited Members

- Public Types inherited from jlm::rvsdg::Node
using Id = uint64_t
 
using InputIteratorRange = util::IteratorRange< Input::Iterator >
 
using InputConstIteratorRange = util::IteratorRange< Input::ConstIterator >
 
using OutputIteratorRange = util::IteratorRange< Output::Iterator >
 
using OutputConstIteratorRange = util::IteratorRange< Output::ConstIterator >
 
typedef util::IntrusiveListAccessor< Node, &Node::region_node_list_anchor_region_node_list_accessor
 
typedef util::IntrusiveListAccessor< Node, &Node::region_top_node_list_anchor_region_top_node_list_accessor
 
typedef util::IntrusiveListAccessor< Node, &Node::region_bottom_node_list_anchor_region_bottom_node_list_accessor
 
- Protected Member Functions inherited from jlm::rvsdg::Node
NodeInputaddInput (std::unique_ptr< NodeInput > input, bool notifyRegion)
 
NodeOutputaddOutput (std::unique_ptr< NodeOutput > output)
 

Detailed Description

Definition at line 18 of file simple-node.hpp.

Constructor & Destructor Documentation

◆ ~SimpleNode()

jlm::rvsdg::SimpleNode::~SimpleNode ( )
override

Definition at line 14 of file simple-node.cpp.

◆ SimpleNode()

jlm::rvsdg::SimpleNode::SimpleNode ( rvsdg::Region region,
std::unique_ptr< SimpleOperation operation,
const std::vector< jlm::rvsdg::Output * > &  operands 
)
private

Definition at line 19 of file simple-node.cpp.

Member Function Documentation

◆ copy() [1/2]

Node * jlm::rvsdg::SimpleNode::copy ( Region region,
const std::vector< Output * > &  operands 
) const
override

Definition at line 54 of file simple-node.cpp.

◆ copy() [2/2]

Node * jlm::rvsdg::SimpleNode::copy ( Region region,
SubstitutionMap smap 
) const
overridevirtual

Copy a node with substitutions.

Parameters
regionTarget region to create node in
smapOperand substitutions
Returns
Copied node

Create a new node that is semantically equivalent to an existing node. The newly created node will use the same operands as the existing node unless there is a substitution registered for a particular operand.

The given substitution map is updated so that all outputs of the original node will be substituted by corresponding outputs of the newly created node in subsequent copy operations.

Implements jlm::rvsdg::Node.

Definition at line 60 of file simple-node.cpp.

◆ Create()

static SimpleNode& jlm::rvsdg::SimpleNode::Create ( Region region,
std::unique_ptr< Operation operation,
const std::vector< rvsdg::Output * > &  operands 
)
inlinestatic

Definition at line 49 of file simple-node.hpp.

◆ DebugString()

std::string jlm::rvsdg::SimpleNode::DebugString ( ) const
overridevirtual

Implements jlm::rvsdg::Node.

Definition at line 79 of file simple-node.cpp.

◆ GetOperation()

const SimpleOperation & jlm::rvsdg::SimpleNode::GetOperation ( ) const
overridevirtualnoexcept

Implements jlm::rvsdg::Node.

Definition at line 48 of file simple-node.cpp.

◆ input()

NodeInput * jlm::rvsdg::SimpleNode::input ( size_t  index) const
inlinenoexcept

Definition at line 82 of file simple-node.hpp.

◆ output()

NodeOutput * jlm::rvsdg::SimpleNode::output ( size_t  index) const
inlinenoexcept

Definition at line 88 of file simple-node.hpp.

Member Data Documentation

◆ Operation_

std::unique_ptr<SimpleOperation> jlm::rvsdg::SimpleNode::Operation_
private

Definition at line 63 of file simple-node.hpp.


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