7 #ifndef JLM_RVSDG_BITSTRING_CONCAT_HPP
8 #define JLM_RVSDG_BITSTRING_CONCAT_HPP
29 operator==(
const Operation & other)
const noexcept
override;
33 const noexcept
override;
42 flags() const noexcept override;
44 [[nodiscard]] std::
string
47 [[nodiscard]] std::unique_ptr<Operation>
48 copy() const override;
51 static std::shared_ptr<const BitType>
58 std::optional<std::vector<rvsdg::Output *>>
61 const std::vector<rvsdg::Output *> &
operands);
std::string debug_string() const override
static std::shared_ptr< const BitType > aggregate_arguments(const std::vector< std::shared_ptr< const BitType >> &types) noexcept
enum BinaryOperation::flags flags() const noexcept override
BitConcatOperation(const std::vector< std::shared_ptr< const BitType >> types)
binop_reduction_path_t can_reduce_operand_pair(const jlm::rvsdg::Output *arg1, const jlm::rvsdg::Output *arg2) const noexcept override
std::unique_ptr< Operation > copy() const override
bool operator==(const Operation &other) const noexcept override
jlm::rvsdg::Output * reduce_operand_pair(binop_reduction_path_t path, jlm::rvsdg::Output *arg1, jlm::rvsdg::Output *arg2) const override
~BitConcatOperation() noexcept override
size_t binop_reduction_path_t
std::optional< std::vector< rvsdg::Output * > > FlattenBitConcatOperation(const BitConcatOperation &, const std::vector< rvsdg::Output * > &operands)
jlm::rvsdg::Output * bitconcat(const std::vector< jlm::rvsdg::Output * > &operands)
static std::vector< jlm::rvsdg::Output * > operands(const Node *node)