|
Jlm
|
#include <MemoryStateOperations.hpp>


Public Member Functions | |
| ~MemoryStateJoinOperation () noexcept override | |
| MemoryStateJoinOperation (const size_t numOperands) | |
| bool | operator== (const Operation &other) const noexcept override |
| std::string | debug_string () const override |
| std::unique_ptr< Operation > | copy () const override |
Public Member Functions inherited from jlm::rvsdg::SimpleOperation | |
| ~SimpleOperation () noexcept override | |
| SimpleOperation (std::vector< std::shared_ptr< const jlm::rvsdg::Type >> operands, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> results) | |
| size_t | narguments () const noexcept |
| const std::shared_ptr< const rvsdg::Type > & | argument (size_t index) const noexcept |
| size_t | nresults () const noexcept |
| const std::shared_ptr< const rvsdg::Type > & | result (size_t index) const noexcept |
Public Member Functions inherited from jlm::rvsdg::Operation | |
| virtual | ~Operation () noexcept |
| virtual bool | operator== (const Operation &other) const noexcept=0 |
| bool | operator!= (const Operation &other) const noexcept |
Static Public Member Functions | |
| static std::optional< std::vector< rvsdg::Output * > > | NormalizeSingleOperand (const MemoryStateJoinOperation &operation, const std::vector< rvsdg::Output * > &operands) |
| Removes the MemoryStateJoinOperation as it has only a single operand, i.e., no joining is performed. More... | |
| static std::optional< std::vector< rvsdg::Output * > > | NormalizeDuplicateOperands (const MemoryStateJoinOperation &operation, const std::vector< rvsdg::Output * > &operands) |
| Removes duplicated operands from the MemoryStateJoinOperation. More... | |
| static std::optional< std::vector< rvsdg::Output * > > | NormalizeNestedJoins (const MemoryStateJoinOperation &operation, const std::vector< rvsdg::Output * > &operands) |
| Fuses nested MemoryStateJoinOperation nodes into a single node. More... | |
| static rvsdg::SimpleNode & | CreateNode (const std::vector< rvsdg::Output * > &operands) |
Additional Inherited Members | |
Protected Member Functions inherited from jlm::llvm::MemoryStateOperation | |
| MemoryStateOperation (size_t numOperands, size_t numResults) | |
A memory state join operation takes multiple states that represent the same abstract memory location as input and joins them together to a single output state.
The operation has no equivalent LLVM instruction.
Definition at line 136 of file MemoryStateOperations.hpp.
|
overridedefaultnoexcept |
|
inlineexplicit |
Definition at line 141 of file MemoryStateOperations.hpp.
|
overridevirtual |
Implements jlm::rvsdg::Operation.
Definition at line 150 of file MemoryStateOperations.cpp.
|
inlinestatic |
Definition at line 194 of file MemoryStateOperations.hpp.
|
overridevirtual |
Implements jlm::rvsdg::Operation.
Definition at line 144 of file MemoryStateOperations.cpp.
|
static |
Removes duplicated operands from the MemoryStateJoinOperation.
so = MemoryStateJoinOperation si0 si0 si1 si1 si2 => so = MemoryStateJoinOperation si0 si1 si2
Definition at line 167 of file MemoryStateOperations.cpp.
|
static |
Fuses nested MemoryStateJoinOperation nodes into a single node.
o1 = MemoryStateJoinOperation i1 i2 o2 = MemoryStateJoinOperation o1 i3 => o2 = MemoryStateJoinOperation i1 i2 i3
Definition at line 195 of file MemoryStateOperations.cpp.
|
static |
Removes the MemoryStateJoinOperation as it has only a single operand, i.e., no joining is performed.
so = MemoryStateJoinOperation si ... = AnyOperation so => ... = AnyOperation si
Definition at line 156 of file MemoryStateOperations.cpp.
|
overridenoexcept |
Definition at line 137 of file MemoryStateOperations.cpp.