Jlm
Public Member Functions | List of all members
jlm::rvsdg::BitBinaryOperation Class Referenceabstract

#include <bitoperation-classes.hpp>

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

Public Member Functions

 ~BitBinaryOperation () noexcept override
 
 BitBinaryOperation (const std::shared_ptr< const BitType > type, size_t arity=2) noexcept
 
binop_reduction_path_t can_reduce_operand_pair (const jlm::rvsdg::Output *arg1, const jlm::rvsdg::Output *arg2) const noexcept override
 
jlm::rvsdg::Outputreduce_operand_pair (binop_reduction_path_t path, jlm::rvsdg::Output *arg1, jlm::rvsdg::Output *arg2) const override
 
virtual BitValueRepresentation reduce_constants (const BitValueRepresentation &arg1, const BitValueRepresentation &arg2) const =0
 
virtual std::unique_ptr< BitBinaryOperationcreate (size_t nbits) const =0
 
const BitTypetype () const noexcept
 
- Public Member Functions inherited from jlm::rvsdg::BinaryOperation
 ~BinaryOperation () noexcept override
 
 BinaryOperation (const std::vector< std::shared_ptr< const jlm::rvsdg::Type >> operands, std::shared_ptr< const jlm::rvsdg::Type > result)
 
virtual BinaryOperation::flags flags () const noexcept
 
bool is_associative () const noexcept
 
bool is_commutative () const noexcept
 
- 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
 
virtual bool operator== (const Operation &other) const noexcept=0
 
virtual std::string debug_string () const =0
 
virtual std::unique_ptr< Operationcopy () const =0
 
bool operator!= (const Operation &other) const noexcept
 

Additional Inherited Members

- Public Types inherited from jlm::rvsdg::BinaryOperation
enum class  flags { none = 0 , associative = 1 , commutative = 2 }
 

Detailed Description

Definition at line 51 of file bitoperation-classes.hpp.

Constructor & Destructor Documentation

◆ ~BitBinaryOperation()

jlm::rvsdg::BitBinaryOperation::~BitBinaryOperation ( )
overridedefaultnoexcept

◆ BitBinaryOperation()

jlm::rvsdg::BitBinaryOperation::BitBinaryOperation ( const std::shared_ptr< const BitType type,
size_t  arity = 2 
)
inlineexplicitnoexcept

Definition at line 56 of file bitoperation-classes.hpp.

Member Function Documentation

◆ can_reduce_operand_pair()

binop_reduction_path_t jlm::rvsdg::BitBinaryOperation::can_reduce_operand_pair ( const jlm::rvsdg::Output arg1,
const jlm::rvsdg::Output arg2 
) const
overridevirtualnoexcept

Implements jlm::rvsdg::BinaryOperation.

Definition at line 45 of file bitoperation-classes.cpp.

◆ create()

virtual std::unique_ptr<BitBinaryOperation> jlm::rvsdg::BitBinaryOperation::create ( size_t  nbits) const
pure virtual

◆ reduce_constants()

virtual BitValueRepresentation jlm::rvsdg::BitBinaryOperation::reduce_constants ( const BitValueRepresentation arg1,
const BitValueRepresentation arg2 
) const
pure virtual

◆ reduce_operand_pair()

jlm::rvsdg::Output * jlm::rvsdg::BitBinaryOperation::reduce_operand_pair ( binop_reduction_path_t  path,
jlm::rvsdg::Output arg1,
jlm::rvsdg::Output arg2 
) const
overridevirtual

Implements jlm::rvsdg::BinaryOperation.

Definition at line 60 of file bitoperation-classes.cpp.

◆ type()

const BitType& jlm::rvsdg::BitBinaryOperation::type ( ) const
inlinenoexcept

Definition at line 79 of file bitoperation-classes.hpp.


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