Jlm
Namespaces | Functions
binary.cpp File Reference
#include <jlm/rvsdg/binary.hpp>
#include <jlm/rvsdg/reduction-helpers.hpp>
#include <jlm/rvsdg/region.hpp>
#include <jlm/rvsdg/simple-node.hpp>
#include <jlm/rvsdg/structural-node.hpp>
#include <jlm/rvsdg/traverser.hpp>
#include <jlm/util/strfmt.hpp>
#include <deque>
Include dependency graph for binary.cpp:

Go to the source code of this file.

Namespaces

 jlm
 
 jlm::rvsdg
 

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...
 
static jlm::rvsdg::Outputjlm::rvsdg::reduce_parallel (const BinaryOperation &op, const std::vector< jlm::rvsdg::Output * > &operands)
 
static jlm::rvsdg::Outputjlm::rvsdg::reduce_linear (const BinaryOperation &op, const std::vector< jlm::rvsdg::Output * > &operands)
 
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...