|
Jlm
|
#include <binary.hpp>


Public Types | |
| enum class | flags { none = 0 , associative = 1 , commutative = 2 } |
Public Member Functions | |
| ~BinaryOperation () noexcept override | |
| BinaryOperation (const std::vector< std::shared_ptr< const jlm::rvsdg::Type >> operands, std::shared_ptr< const jlm::rvsdg::Type > result) | |
| virtual binop_reduction_path_t | can_reduce_operand_pair (const jlm::rvsdg::Output *op1, const jlm::rvsdg::Output *op2) const noexcept=0 |
| virtual jlm::rvsdg::Output * | reduce_operand_pair (binop_reduction_path_t path, jlm::rvsdg::Output *op1, jlm::rvsdg::Output *op2) const =0 |
| 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< Operation > | copy () const =0 |
| bool | operator!= (const Operation &other) const noexcept |
Binary operation taking two arguments (with well-defined reduction for more operands if operator is associative).
Definition at line 25 of file binary.hpp.
|
strong |
| Enumerator | |
|---|---|
| none | |
| associative | |
| commutative | |
Definition at line 28 of file binary.hpp.
|
overridedefaultnoexcept |
|
inline |
Definition at line 37 of file binary.hpp.
|
pure virtualnoexcept |
Implemented in jlm::llvm::IntegerUltOperation, jlm::llvm::IntegerUleOperation, jlm::llvm::IntegerUgtOperation, jlm::llvm::IntegerUgeOperation, jlm::llvm::IntegerSltOperation, jlm::llvm::IntegerSleOperation, jlm::llvm::IntegerSgtOperation, jlm::llvm::IntegerSgeOperation, jlm::llvm::IntegerNeOperation, jlm::llvm::IntegerEqOperation, jlm::llvm::IntegerXorOperation, jlm::llvm::IntegerOrOperation, jlm::llvm::IntegerAndOperation, jlm::llvm::IntegerLShrOperation, jlm::llvm::IntegerShlOperation, jlm::llvm::IntegerAShrOperation, jlm::llvm::IntegerURemOperation, jlm::llvm::IntegerSRemOperation, jlm::llvm::IntegerUDivOperation, jlm::llvm::IntegerSDivOperation, jlm::llvm::IntegerMulOperation, jlm::llvm::IntegerSubOperation, jlm::llvm::IntegerAddOperation, jlm::rvsdg::TestBinaryOperation, jlm::llvm::FBinaryOperation, jlm::llvm::FCmpOperation, jlm::llvm::PtrCmpOperation, jlm::rvsdg::BitConcatOperation, jlm::rvsdg::BitCompareOperation, and jlm::rvsdg::BitBinaryOperation.
|
virtualnoexcept |
Reimplemented in jlm::rvsdg::TestBinaryOperation, jlm::rvsdg::BitConcatOperation, jlm::rvsdg::MakeBitComparisonOperation< reduction, name, opflags >, jlm::rvsdg::MakeBitBinaryOperation< reduction, name, opflags >, jlm::llvm::IntegerUltOperation, jlm::llvm::IntegerUleOperation, jlm::llvm::IntegerUgtOperation, jlm::llvm::IntegerUgeOperation, jlm::llvm::IntegerSltOperation, jlm::llvm::IntegerSleOperation, jlm::llvm::IntegerSgtOperation, jlm::llvm::IntegerSgeOperation, jlm::llvm::IntegerNeOperation, jlm::llvm::IntegerEqOperation, jlm::llvm::IntegerXorOperation, jlm::llvm::IntegerOrOperation, jlm::llvm::IntegerAndOperation, jlm::llvm::IntegerLShrOperation, jlm::llvm::IntegerShlOperation, jlm::llvm::IntegerAShrOperation, jlm::llvm::IntegerURemOperation, jlm::llvm::IntegerSRemOperation, jlm::llvm::IntegerUDivOperation, jlm::llvm::IntegerSDivOperation, jlm::llvm::IntegerMulOperation, jlm::llvm::IntegerSubOperation, and jlm::llvm::IntegerAddOperation.
Definition at line 55 of file binary.cpp.
|
inlinenoexcept |
Definition at line 192 of file binary.hpp.
|
inlinenoexcept |
Definition at line 198 of file binary.hpp.
|
pure virtual |
Implemented in jlm::rvsdg::TestBinaryOperation, jlm::llvm::IntegerUltOperation, jlm::llvm::IntegerUleOperation, jlm::llvm::IntegerUgtOperation, jlm::llvm::IntegerUgeOperation, jlm::llvm::IntegerSltOperation, jlm::llvm::IntegerSleOperation, jlm::llvm::IntegerSgtOperation, jlm::llvm::IntegerSgeOperation, jlm::llvm::IntegerNeOperation, jlm::llvm::IntegerEqOperation, jlm::llvm::IntegerXorOperation, jlm::llvm::IntegerOrOperation, jlm::llvm::IntegerAndOperation, jlm::llvm::IntegerLShrOperation, jlm::llvm::IntegerShlOperation, jlm::llvm::IntegerAShrOperation, jlm::llvm::IntegerURemOperation, jlm::llvm::IntegerSRemOperation, jlm::llvm::IntegerUDivOperation, jlm::llvm::IntegerSDivOperation, jlm::llvm::IntegerMulOperation, jlm::llvm::IntegerSubOperation, jlm::llvm::IntegerAddOperation, jlm::llvm::FBinaryOperation, jlm::llvm::FCmpOperation, jlm::llvm::PtrCmpOperation, jlm::rvsdg::BitConcatOperation, jlm::rvsdg::BitCompareOperation, and jlm::rvsdg::BitBinaryOperation.