Jlm
Classes | Public Member Functions | Protected Member Functions | Private Types | Static Private Member Functions | Private Attributes | Friends | List of all members
jlm::rvsdg::Input Class Reference

#include <node.hpp>

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

Classes

class  ConstIterator
 
class  Iterator
 

Public Member Functions

virtual ~Input () noexcept
 
 Input (const Input &)=delete
 
 Input (Input &&)=delete
 
Inputoperator= (const Input &)=delete
 
Inputoperator= (Input &&)=delete
 
size_t index () const noexcept
 
Outputorigin () const noexcept
 
void divert_to (Output *new_origin)
 
const std::shared_ptr< const rvsdg::Type > & Type () const noexcept
 
Regionregion () const noexcept
 
virtual std::string debug_string () const
 
std::variant< Node *, Region * > GetOwner () const noexcept
 

Protected Member Functions

 Input (Node &owner, Output &origin, std::shared_ptr< const rvsdg::Type > type)
 
 Input (Region &owner, Output &origin, std::shared_ptr< const rvsdg::Type > type)
 

Private Types

using UsersListAccessor = util::IntrusiveListAccessor< Input, &Input::UsersList_ >
 
using UsersList = jlm::util::IntrusiveList< Input, UsersListAccessor >
 

Static Private Member Functions

static void CheckTypes (const Region &region, const Output &origin, const std::shared_ptr< const rvsdg::Type > &type)
 

Private Attributes

size_t index_
 
jlm::rvsdg::Outputorigin_ = nullptr
 
std::variant< Node *, Region * > Owner_
 
std::shared_ptr< const rvsdg::TypeType_
 
jlm::util::IntrusiveListAnchor< InputUsersList_
 

Friends

class Node
 
class Region
 
class Output
 

Detailed Description

Definition at line 28 of file node.hpp.

Member Typedef Documentation

◆ UsersList

Definition at line 229 of file node.hpp.

◆ UsersListAccessor

Definition at line 228 of file node.hpp.

Constructor & Destructor Documentation

◆ Input() [1/4]

jlm::rvsdg::Input::Input ( rvsdg::Node owner,
rvsdg::Output origin,
std::shared_ptr< const rvsdg::Type type 
)
protected

Definition at line 37 of file node.cpp.

◆ Input() [2/4]

jlm::rvsdg::Input::Input ( rvsdg::Region owner,
rvsdg::Output origin,
std::shared_ptr< const rvsdg::Type type 
)
protected

Definition at line 47 of file node.cpp.

◆ ~Input()

jlm::rvsdg::Input::~Input ( )
virtualnoexcept

Definition at line 19 of file node.cpp.

◆ Input() [3/4]

jlm::rvsdg::Input::Input ( const Input )
delete

◆ Input() [4/4]

jlm::rvsdg::Input::Input ( Input &&  )
delete

Member Function Documentation

◆ CheckTypes()

void jlm::rvsdg::Input::CheckTypes ( const Region region,
const Output origin,
const std::shared_ptr< const rvsdg::Type > &  type 
)
staticprivate

Definition at line 25 of file node.cpp.

◆ debug_string()

std::string jlm::rvsdg::Input::debug_string ( ) const
virtual

Reimplemented in jlm::rvsdg::RegionResult, and jlm::rvsdg::GraphExport.

Definition at line 58 of file node.cpp.

◆ divert_to()

void jlm::rvsdg::Input::divert_to ( Output new_origin)

Definition at line 64 of file node.cpp.

◆ GetOwner()

std::variant<Node *, Region *> jlm::rvsdg::Input::GetOwner ( ) const
inlinenoexcept

Definition at line 79 of file node.hpp.

◆ index()

size_t jlm::rvsdg::Input::index ( ) const
inlinenoexcept

Definition at line 52 of file node.hpp.

◆ operator=() [1/2]

Input& jlm::rvsdg::Input::operator= ( const Input )
delete

◆ operator=() [2/2]

Input& jlm::rvsdg::Input::operator= ( Input &&  )
delete

◆ origin()

Output* jlm::rvsdg::Input::origin ( ) const
inlinenoexcept

Definition at line 58 of file node.hpp.

◆ region()

rvsdg::Region * jlm::rvsdg::Input::region ( ) const
noexcept

Definition at line 83 of file node.cpp.

◆ Type()

const std::shared_ptr<const rvsdg::Type>& jlm::rvsdg::Input::Type ( ) const
inlinenoexcept

Definition at line 67 of file node.hpp.

Friends And Related Function Documentation

◆ Node

friend class Node
friend

Definition at line 30 of file node.hpp.

◆ Output

friend class Output
friend

Definition at line 231 of file node.hpp.

◆ Region

friend class Region
friend

Definition at line 31 of file node.hpp.

Member Data Documentation

◆ index_

size_t jlm::rvsdg::Input::index_
private

Definition at line 223 of file node.hpp.

◆ origin_

jlm::rvsdg::Output* jlm::rvsdg::Input::origin_ = nullptr
private

Definition at line 224 of file node.hpp.

◆ Owner_

std::variant<Node *, Region *> jlm::rvsdg::Input::Owner_
private

Definition at line 225 of file node.hpp.

◆ Type_

std::shared_ptr<const rvsdg::Type> jlm::rvsdg::Input::Type_
private

Definition at line 226 of file node.hpp.

◆ UsersList_

jlm::util::IntrusiveListAnchor<Input> jlm::rvsdg::Input::UsersList_
private

Definition at line 227 of file node.hpp.


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