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

#include <binary.hpp>

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

Public Types

enum class  reduction { linear , parallel }
 

Public Member Functions

 ~FlattenedBinaryOperation () noexcept override
 
 FlattenedBinaryOperation (std::unique_ptr< BinaryOperation > op, size_t narguments) noexcept
 
 FlattenedBinaryOperation (const BinaryOperation &op, size_t narguments)
 
bool operator== (const Operation &other) const noexcept override
 
std::string debug_string () const override
 
std::unique_ptr< Operationcopy () const override
 
const BinaryOperationbin_operation () const noexcept
 
jlm::rvsdg::Outputreduce (const FlattenedBinaryOperation::reduction &reduction, const std::vector< jlm::rvsdg::Output * > &operands) const
 
- Public Member Functions inherited from jlm::rvsdg::SimpleOperation
 ~SimpleOperation () noexcept override
 
 SimpleOperation (std::vector< std::shared_ptr< const jlm::rvsdg::Type >> operands, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> results)
 
size_t narguments () const noexcept
 
const std::shared_ptr< const rvsdg::Type > & argument (size_t index) const noexcept
 
size_t nresults () const noexcept
 
const std::shared_ptr< const rvsdg::Type > & result (size_t index) const noexcept
 
- Public Member Functions inherited from jlm::rvsdg::Operation
virtual ~Operation () noexcept
 
bool operator!= (const Operation &other) const noexcept
 

Static Public Member Functions

static void reduce (rvsdg::Region *region, const FlattenedBinaryOperation::reduction &reduction)
 
static void reduce (Graph *graph, const FlattenedBinaryOperation::reduction &reduction)
 

Private Attributes

std::unique_ptr< BinaryOperationop_
 

Detailed Description

Definition at line 100 of file binary.hpp.

Member Enumeration Documentation

◆ reduction

Enumerator
linear 
parallel 

Definition at line 103 of file binary.hpp.

Constructor & Destructor Documentation

◆ ~FlattenedBinaryOperation()

jlm::rvsdg::FlattenedBinaryOperation::~FlattenedBinaryOperation ( )
overridedefaultnoexcept

◆ FlattenedBinaryOperation() [1/2]

jlm::rvsdg::FlattenedBinaryOperation::FlattenedBinaryOperation ( std::unique_ptr< BinaryOperation op,
size_t  narguments 
)
inlinenoexcept

Definition at line 111 of file binary.hpp.

◆ FlattenedBinaryOperation() [2/2]

jlm::rvsdg::FlattenedBinaryOperation::FlattenedBinaryOperation ( const BinaryOperation op,
size_t  narguments 
)
inline

Definition at line 118 of file binary.hpp.

Member Function Documentation

◆ bin_operation()

const BinaryOperation& jlm::rvsdg::FlattenedBinaryOperation::bin_operation ( ) const
inlinenoexcept

Definition at line 135 of file binary.hpp.

◆ copy()

std::unique_ptr< Operation > jlm::rvsdg::FlattenedBinaryOperation::copy ( ) const
overridevirtual

Implements jlm::rvsdg::Operation.

Definition at line 153 of file binary.cpp.

◆ debug_string()

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

Implements jlm::rvsdg::Operation.

Definition at line 147 of file binary.cpp.

◆ operator==()

bool jlm::rvsdg::FlattenedBinaryOperation::operator== ( const Operation other) const
overridevirtualnoexcept

Implements jlm::rvsdg::Operation.

Definition at line 140 of file binary.cpp.

◆ reduce() [1/3]

jlm::rvsdg::Output * jlm::rvsdg::FlattenedBinaryOperation::reduce ( const FlattenedBinaryOperation::reduction reduction,
const std::vector< jlm::rvsdg::Output * > &  operands 
) const

Definition at line 209 of file binary.cpp.

◆ reduce() [2/3]

static void jlm::rvsdg::FlattenedBinaryOperation::reduce ( Graph graph,
const FlattenedBinaryOperation::reduction reduction 
)
inlinestatic

Definition at line 149 of file binary.hpp.

◆ reduce() [3/3]

void jlm::rvsdg::FlattenedBinaryOperation::reduce ( rvsdg::Region region,
const FlattenedBinaryOperation::reduction reduction 
)
static

Definition at line 226 of file binary.cpp.

Member Data Documentation

◆ op_

std::unique_ptr<BinaryOperation> jlm::rvsdg::FlattenedBinaryOperation::op_
private

Definition at line 155 of file binary.hpp.


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