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

Represents the result of a region. More...

#include <region.hpp>

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

Public Types

typedef util::IntrusiveListAccessor< RegionResult, &RegionResult::structural_output_anchor_structural_output_accessor
 

Public Member Functions

 ~RegionResult () noexcept override
 
 RegionResult (rvsdg::Region *region, rvsdg::Output *origin, StructuralOutput *output, std::shared_ptr< const rvsdg::Type > type)
 
 RegionResult (const RegionResult &)=delete
 
 RegionResult (RegionResult &&)=delete
 
RegionResultoperator= (const RegionResult &)=delete
 
RegionResultoperator= (RegionResult &&)=delete
 
std::string debug_string () const override
 
StructuralOutputoutput () const noexcept
 
virtual RegionResultCopy (rvsdg::Output &origin, StructuralOutput *output) const
 
- Public Member Functions inherited from jlm::rvsdg::Input
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
 
std::variant< Node *, Region * > GetOwner () const noexcept
 

Static Public Member Functions

static RegionResultCreate (rvsdg::Region &region, rvsdg::Output &origin, StructuralOutput *output, std::shared_ptr< const rvsdg::Type > type)
 Create region exit result. More...
 

Private Attributes

util::IntrusiveListAnchor< RegionResultstructural_output_anchor_ {}
 
StructuralOutputoutput_
 

Additional Inherited Members

- Protected Member Functions inherited from jlm::rvsdg::Input
 Input (Node &owner, Output &origin, std::shared_ptr< const rvsdg::Type > type)
 
 Input (Region &owner, Output &origin, std::shared_ptr< const rvsdg::Type > type)
 

Detailed Description

Represents the result of a region.

Region results represent the final values of the region's acyclic graph. The result values can be mapped back to the region arguments or the corresponding structural outputs throughout the execution, but the concrete semantics of this mapping depends on the structural node the region is part of. A region result is either linked with a StructuralOutput or is a standalone result.

Definition at line 119 of file region.hpp.

Member Typedef Documentation

◆ structural_output_accessor

Definition at line 125 of file region.hpp.

Constructor & Destructor Documentation

◆ ~RegionResult()

jlm::rvsdg::RegionResult::~RegionResult ( )
overridenoexcept

Definition at line 70 of file region.cpp.

◆ RegionResult() [1/3]

jlm::rvsdg::RegionResult::RegionResult ( rvsdg::Region region,
rvsdg::Output origin,
StructuralOutput output,
std::shared_ptr< const rvsdg::Type type 
)

Definition at line 76 of file region.cpp.

◆ RegionResult() [2/3]

jlm::rvsdg::RegionResult::RegionResult ( const RegionResult )
delete

◆ RegionResult() [3/3]

jlm::rvsdg::RegionResult::RegionResult ( RegionResult &&  )
delete

Member Function Documentation

◆ Copy()

RegionResult & jlm::rvsdg::RegionResult::Copy ( rvsdg::Output origin,
StructuralOutput output 
) const
virtual

Creates a copy of the result with origin and structural_output output. The result is created with the same type as origin and in the same region as origin.

Parameters
originThe origin for the result.
outputThe structural_output to the result, if any.
Returns
A reference to the copied result.

Reimplemented in jlm::hls::ExitResult, jlm::hls::BackEdgeResult, and jlm::rvsdg::GraphExport.

Definition at line 105 of file region.cpp.

◆ Create()

RegionResult & jlm::rvsdg::RegionResult::Create ( rvsdg::Region region,
rvsdg::Output origin,
StructuralOutput output,
std::shared_ptr< const rvsdg::Type type 
)
static

Create region exit result.

Parameters
regionRegion to create result for.
originAssigned result value.
output(optional) output of parent node associated with this result (deprecated, will be removed soon).
typeResult type
Returns
Reference to the created result.

Creates a result and registers it with the given region.

Definition at line 111 of file region.cpp.

◆ debug_string()

std::string jlm::rvsdg::RegionResult::debug_string ( ) const
overridevirtual

Reimplemented from jlm::rvsdg::Input.

Definition at line 99 of file region.cpp.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ output()

StructuralOutput* jlm::rvsdg::RegionResult::output ( ) const
inlinenoexcept

Definition at line 149 of file region.hpp.

Member Data Documentation

◆ output_

StructuralOutput* jlm::rvsdg::RegionResult::output_
private

Definition at line 195 of file region.hpp.

◆ structural_output_anchor_

util::IntrusiveListAnchor<RegionResult> jlm::rvsdg::RegionResult::structural_output_anchor_ {}
private

Definition at line 121 of file region.hpp.


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