17 return operation && operation->
LengthType() == LengthType()
18 && operation->NumMemoryStates() == NumMemoryStates();
27std::unique_ptr<rvsdg::Operation>
30 return std::make_unique<MemCpyNonVolatileOperation>(*
this);
45 return this == &other;
51 return "MemCpyVolatile";
54std::unique_ptr<rvsdg::Operation>
57 return std::make_unique<MemCpyVolatileOperation>(*
this);
73 return operation && operation->
lengthType() == lengthType()
74 && operation->numMemoryStates() == numMemoryStates();
83std::unique_ptr<rvsdg::Operation>
86 return std::make_unique<MemSetNonVolatileOperation>(*
this);
101 return operation && operation->
lengthType() == lengthType()
102 && operation->numMemoryStates() == numMemoryStates();
111std::unique_ptr<rvsdg::Operation>
114 return std::make_unique<MemMoveNonVolatileOperation>(*
this);
128 const auto operation =
dynamic_cast<const UMaxOperation *
>(&other);
129 return operation && *operation->
getType() == *getType();
138std::unique_ptr<rvsdg::Operation>
141 return std::make_unique<UMaxOperation>(*
this);
147 if (!is<const rvsdg::BitType>(type) && !isVectorOf<const rvsdg::BitType>(*type))
149 throw std::runtime_error(
"UMaxOperation::checkType: Expected integer type.");
158 const auto operation =
dynamic_cast<const SMinOperation *
>(&other);
159 return operation && *operation->
getType() == *getType();
168std::unique_ptr<rvsdg::Operation>
171 return std::make_unique<SMinOperation>(*
this);
177 if (!is<const rvsdg::BitType>(type) && !isVectorOf<const rvsdg::BitType>(*type))
179 throw std::runtime_error(
"SMinOperation::checkType: Expected integer type.");
188 const auto operation =
dynamic_cast<const UMinOperation *
>(&other);
189 return operation && *operation->
getType() == *getType();
198std::unique_ptr<rvsdg::Operation>
201 return std::make_unique<UMinOperation>(*
this);
207 if (!is<const rvsdg::BitType>(type) && !isVectorOf<const rvsdg::BitType>(*type))
209 throw std::runtime_error(
"UMinOperation::checkType: Expected integer type.");
218 const auto operation =
dynamic_cast<const FAbsOperation *
>(&other);
219 return operation && *operation->
getType() == *getType();
228std::unique_ptr<rvsdg::Operation>
231 return std::make_unique<FAbsOperation>(*
this);
237 if (!is<const FloatingPointType>(type) && !isVectorOf<const FloatingPointType>(*type))
239 throw std::runtime_error(
"FAbsOperation::checkType: Expected floating point type.");
248 const auto operation =
dynamic_cast<const AbsOperation *
>(&other);
249 return operation && *operation->
getType() == *getType();
258std::unique_ptr<rvsdg::Operation>
261 return std::make_unique<AbsOperation>(*
this);
267 if (!is<const rvsdg::BitType>(type) && !isVectorOf<const rvsdg::BitType>(*type))
269 throw std::runtime_error(
"AbsOperation::checkType: Expected integer type.");
278 const auto operation =
dynamic_cast<const SMaxOperation *
>(&other);
279 return operation && *operation->
getType() == *getType();
288std::unique_ptr<rvsdg::Operation>
291 return std::make_unique<SMaxOperation>(*
this);
297 if (!is<const rvsdg::BitType>(type) && !isVectorOf<const rvsdg::BitType>(*type))
299 throw std::runtime_error(
"SMaxOperation::checkType: Expected integer type.");
~AbsOperation() noexcept override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::unique_ptr< Operation > copy() const override
std::string debug_string() const override
std::string debug_string() const override
~FAbsOperation() noexcept override
std::unique_ptr< Operation > copy() const override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::shared_ptr< const rvsdg::Type > getType() const noexcept
std::unique_ptr< Operation > copy() const override
std::string debug_string() const override
~MemCpyNonVolatileOperation() override
size_t NumMemoryStates() const noexcept override
bool operator==(const Operation &other) const noexcept override
const rvsdg::BitType & LengthType() const noexcept
std::string debug_string() const override
std::unique_ptr< Operation > copy() const override
~MemCpyVolatileOperation() noexcept override
size_t NumMemoryStates() const noexcept override
size_t numMemoryStates() const noexcept override
std::string debug_string() const override
std::unique_ptr< Operation > copy() const override
~MemMoveNonVolatileOperation() noexcept override
const rvsdg::BitType & lengthType() const noexcept
size_t numMemoryStates() const noexcept override
~MemSetNonVolatileOperation() noexcept override
std::string debug_string() const override
std::unique_ptr< Operation > copy() const override
const rvsdg::BitType & lengthType() const noexcept
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::string debug_string() const override
~SMaxOperation() noexcept override
std::unique_ptr< Operation > copy() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
~SMinOperation() noexcept override
std::string debug_string() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
std::unique_ptr< Operation > copy() const override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::shared_ptr< const rvsdg::Type > getType() const noexcept
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::unique_ptr< Operation > copy() const override
std::string debug_string() const override
~UMaxOperation() noexcept override
std::unique_ptr< Operation > copy() const override
~UMinOperation() noexcept override
std::string debug_string() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
size_t nresults() const noexcept
Global memory state passed between functions.
static std::string strfmt(Args... args)