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;
72 JLM_ASSERT(rvsdg::is<IOBarrierOperation>(&node));
73 const auto input = node.input(0);
80 return rvsdg::CreateOpNode<IOBarrierOperation>({ &value, &ioState }, value.
Type());
const std::shared_ptr< const rvsdg::Type > & Type() const noexcept
std::string debug_string() const override
bool operator==(const Operation &other) const noexcept override
~IOBarrierOperation() noexcept override
static rvsdg::SimpleNode & createNode(rvsdg::Output &value, rvsdg::Output &ioState)
static rvsdg::Input & BarredInput(const rvsdg::SimpleNode &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.
static std::string type(const Node *n)