Jlm
Public Member Functions | Protected Member Functions | Private Types | Private Attributes | List of all members
jlm::rvsdg::StructuralNode Class Reference

#include <structural-node.hpp>

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

Public Member Functions

 ~StructuralNode () noexcept override
 
std::string DebugString () const override
 
size_t nsubregions () const noexcept
 
rvsdg::Regionsubregion (size_t index) const noexcept
 
SubregionIteratorRange Subregions ()
 
SubregionConstIteratorRange Subregions () const
 
StructuralInputinput (size_t index) const noexcept
 
StructuralOutputoutput (size_t index) const noexcept
 
- Public Member Functions inherited from jlm::rvsdg::Node
virtual ~Node ()
 
 Node (Region *region)
 
Id GetNodeId () const noexcept
 
virtual const OperationGetOperation () const noexcept=0
 
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
 
virtual Nodecopy (rvsdg::Region *region, SubstitutionMap &smap) const =0
 Copy a node with substitutions. More...
 

Protected Member Functions

 StructuralNode (rvsdg::Region *region, size_t nsubregions)
 
StructuralInputaddInput (std::unique_ptr< StructuralInput > input, bool notifyRegion)
 
StructuralOutputaddOutput (std::unique_ptr< StructuralOutput > input)
 
- Protected Member Functions inherited from jlm::rvsdg::Node
NodeInputaddInput (std::unique_ptr< NodeInput > input, bool notifyRegion)
 
NodeOutputaddOutput (std::unique_ptr< NodeOutput > output)
 

Private Types

using SubregionIterator = util::PtrIterator< Region, std::vector< std::unique_ptr< Region > >::iterator >
 
using SubregionConstIterator = util::PtrIterator< const Region, std::vector< std::unique_ptr< Region > >::const_iterator >
 
using SubregionIteratorRange = util::IteratorRange< SubregionIterator >
 
using SubregionConstIteratorRange = util::IteratorRange< SubregionConstIterator >
 

Private Attributes

std::vector< std::unique_ptr< rvsdg::Region > > subregions_
 

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
 

Detailed Description

Definition at line 23 of file structural-node.hpp.

Member Typedef Documentation

◆ SubregionConstIterator

using jlm::rvsdg::StructuralNode::SubregionConstIterator = util::PtrIterator<const Region, std::vector<std::unique_ptr<Region> >::const_iterator>
private

Definition at line 27 of file structural-node.hpp.

◆ SubregionConstIteratorRange

Definition at line 31 of file structural-node.hpp.

◆ SubregionIterator

using jlm::rvsdg::StructuralNode::SubregionIterator = util::PtrIterator<Region, std::vector<std::unique_ptr<Region> >::iterator>
private

Definition at line 25 of file structural-node.hpp.

◆ SubregionIteratorRange

Definition at line 30 of file structural-node.hpp.

Constructor & Destructor Documentation

◆ ~StructuralNode()

jlm::rvsdg::StructuralNode::~StructuralNode ( )
overridenoexcept

Definition at line 40 of file structural-node.cpp.

◆ StructuralNode()

jlm::rvsdg::StructuralNode::StructuralNode ( rvsdg::Region region,
size_t  nsubregions 
)
protected

Definition at line 47 of file structural-node.cpp.

Member Function Documentation

◆ addInput()

StructuralInput * jlm::rvsdg::StructuralNode::addInput ( std::unique_ptr< StructuralInput input,
bool  notifyRegion 
)
inlineprotected

Definition at line 150 of file structural-node.hpp.

◆ addOutput()

StructuralOutput * jlm::rvsdg::StructuralNode::addOutput ( std::unique_ptr< StructuralOutput input)
inlineprotected

Definition at line 156 of file structural-node.hpp.

◆ DebugString()

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

Implements jlm::rvsdg::Node.

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

◆ input()

StructuralInput * jlm::rvsdg::StructuralNode::input ( size_t  index) const
inlinenoexcept

Definition at line 138 of file structural-node.hpp.

◆ nsubregions()

size_t jlm::rvsdg::StructuralNode::nsubregions ( ) const
inlinenoexcept

Definition at line 44 of file structural-node.hpp.

◆ output()

StructuralOutput * jlm::rvsdg::StructuralNode::output ( size_t  index) const
inlinenoexcept

Definition at line 144 of file structural-node.hpp.

◆ subregion()

rvsdg::Region* jlm::rvsdg::StructuralNode::subregion ( size_t  index) const
inlinenoexcept

Definition at line 50 of file structural-node.hpp.

◆ Subregions() [1/2]

SubregionIteratorRange jlm::rvsdg::StructuralNode::Subregions ( )
inline

Definition at line 57 of file structural-node.hpp.

◆ Subregions() [2/2]

SubregionConstIteratorRange jlm::rvsdg::StructuralNode::Subregions ( ) const
inline

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

Member Data Documentation

◆ subregions_

std::vector<std::unique_ptr<rvsdg::Region> > jlm::rvsdg::StructuralNode::subregions_
private

Definition at line 83 of file structural-node.hpp.


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