6#ifndef JLM_LLVM_IR_OPERATORS_IOBARRIER_HPP
7#define JLM_LLVM_IR_OPERATORS_IOBARRIER_HPP
54 [[nodiscard]]
const std::shared_ptr<const rvsdg::Type> &
61 operator==(
const Operation & other)
const noexcept override;
66 std::unique_ptr<Operation>
67 copy()
const override;
73 const auto input = node.input(0);
81 const auto input = node.input(1);
static rvsdg::Input & getIOStateInput(const rvsdg::Node &node) noexcept
const std::shared_ptr< const rvsdg::Type > & Type() const noexcept
std::string debug_string() const override
bool operator==(const Operation &other) const noexcept override
static rvsdg::SimpleNode & createNode(rvsdg::Output &value, rvsdg::Output &ioState)
~IOBarrierOperation() noexcept override
static rvsdg::Input & BarredInput(const rvsdg::Node &node) noexcept
std::unique_ptr< Operation > copy() const override
static std::shared_ptr< const IOStateType > Create()
const std::shared_ptr< const rvsdg::Type > & Type() const noexcept
const std::shared_ptr< const rvsdg::Type > & result(size_t index) const noexcept
SimpleOperation(std::vector< std::shared_ptr< const jlm::rvsdg::Type > > operands, std::vector< std::shared_ptr< const jlm::rvsdg::Type > > results)
Global memory state passed between functions.
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.