16 std::optional<std::vector<rvsdg::Output *>>
19 const std::vector<rvsdg::Output *> &
operands)
~UnaryOperation() noexcept override
virtual jlm::rvsdg::Output * reduce_operand(unop_reduction_path_t path, jlm::rvsdg::Output *arg) const =0
virtual unop_reduction_path_t can_reduce_operand(const jlm::rvsdg::Output *arg) const noexcept=0
std::optional< std::vector< rvsdg::Output * > > NormalizeUnaryOperation(const UnaryOperation &operation, const std::vector< rvsdg::Output * > &operands)
Applies the reductions implemented in the unary operations reduction functions.
static std::vector< jlm::rvsdg::Output * > operands(const Node *node)
static const unop_reduction_path_t unop_reduction_none