Jlm
Classes | Namespaces | Typedefs | Functions | Variables
binary.hpp File Reference
#include <jlm/rvsdg/graph.hpp>
#include <jlm/rvsdg/operation.hpp>
#include <jlm/util/common.hpp>
#include <optional>
Include dependency graph for binary.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  jlm::rvsdg::BinaryOperation
 
class  jlm::rvsdg::FlattenedBinaryOperation
 

Namespaces

 jlm
 
 jlm::rvsdg
 

Typedefs

typedef size_t jlm::rvsdg::binop_reduction_path_t
 

Functions

std::optional< std::vector< rvsdg::Output * > > jlm::rvsdg::FlattenAssociativeBinaryOperation (const BinaryOperation &operation, const std::vector< rvsdg::Output * > &operands)
 Flattens a cascade of the same binary operations into a single flattened binary operation. More...
 
std::optional< std::vector< rvsdg::Output * > > jlm::rvsdg::NormalizeBinaryOperation (const BinaryOperation &operation, const std::vector< rvsdg::Output * > &operands)
 Applies the reductions implemented in the binary operations reduction functions. More...
 
std::optional< std::vector< rvsdg::Output * > > jlm::rvsdg::NormalizeFlattenedBinaryOperation (const FlattenedBinaryOperation &operation, const std::vector< rvsdg::Output * > &operands)
 Applies the reductions of the binary operation represented by the flattened binary operation. More...
 
static constexpr enum BinaryOperation::flags jlm::rvsdg::operator| (enum BinaryOperation::flags a, enum BinaryOperation::flags b)
 
static constexpr enum BinaryOperation::flags jlm::rvsdg::operator& (enum BinaryOperation::flags a, enum BinaryOperation::flags b)
 

Variables

static const binop_reduction_path_t jlm::rvsdg::binop_reduction_none = 0
 
static const binop_reduction_path_t jlm::rvsdg::binop_reduction_constants = 1
 
static const binop_reduction_path_t jlm::rvsdg::binop_reduction_merge = 2
 
static const binop_reduction_path_t jlm::rvsdg::binop_reduction_lfold = 3
 
static const binop_reduction_path_t jlm::rvsdg::binop_reduction_rfold = 4
 
static const binop_reduction_path_t jlm::rvsdg::binop_reduction_lneutral = 5
 
static const binop_reduction_path_t jlm::rvsdg::binop_reduction_rneutral = 6
 
static const binop_reduction_path_t jlm::rvsdg::binop_reduction_factor = 7