Jlm
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Private Member Functions | List of all members
jlm::llvm::MemMoveNonVolatileOperation Class Referencefinal

#include <StdLibIntrinsicOperations.hpp>

Inheritance diagram for jlm::llvm::MemMoveNonVolatileOperation:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::MemMoveNonVolatileOperation:
Collaboration graph
[legend]

Public Member Functions

 ~MemMoveNonVolatileOperation () noexcept override
 
 MemMoveNonVolatileOperation (std::shared_ptr< const rvsdg::Type > lengthType, size_t numMemoryStates)
 
bool operator== (const Operation &other) const noexcept override
 
std::string debug_string () const override
 
std::unique_ptr< Operation > copy () const override
 
size_t numMemoryStates () const noexcept override
 
- Public Member Functions inherited from jlm::llvm::MemMoveOperation
const rvsdg::BitTypelengthType () const noexcept
 
- 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::unique_ptr< ThreeAddressCodecreateTac (const Variable &dest, const Variable &src, const Variable &length, const std::vector< const Variable * > &memoryStates)
 
static rvsdg::SimpleNodecreateNode (rvsdg::Output &dest, rvsdg::Output &src, rvsdg::Output &length, const std::vector< rvsdg::Output * > &memoryStates)
 
- Static Public Member Functions inherited from jlm::llvm::MemMoveOperation
static rvsdg::InputdestinationInput (const rvsdg::Node &node) noexcept
 
static rvsdg::InputsourceInput (const rvsdg::Node &node) noexcept
 
static rvsdg::InputlengthInput (const rvsdg::Node &node) noexcept
 
static rvsdg::InputmapMemoryStateOutputToInput (const rvsdg::Output &output)
 
static rvsdg::OutputmapMemoryStateInputToOutput (const rvsdg::Input &input)
 

Static Private Member Functions

static std::vector< std::shared_ptr< const rvsdg::Type > > checkAndCreateOperandTypes (const std::shared_ptr< const rvsdg::Type > &lengthType, const size_t numMemoryStates)
 
static std::vector< std::shared_ptr< const rvsdg::Type > > createResultTypes (size_t numMemoryStates)
 

Additional Inherited Members

- Protected Member Functions inherited from jlm::llvm::MemMoveOperation
 MemMoveOperation (const std::vector< std::shared_ptr< const rvsdg::Type > > &operandTypes, const std::vector< std::shared_ptr< const rvsdg::Type > > &resultTypes)
 

Detailed Description

Represents a non-volatile llvm.memmove intrinsic

See LLVM Language Reference Manual for more details.

Definition at line 685 of file StdLibIntrinsicOperations.hpp.

Constructor & Destructor Documentation

◆ ~MemMoveNonVolatileOperation()

jlm::llvm::MemMoveNonVolatileOperation::~MemMoveNonVolatileOperation ( )
overridedefaultnoexcept

◆ MemMoveNonVolatileOperation()

jlm::llvm::MemMoveNonVolatileOperation::MemMoveNonVolatileOperation ( std::shared_ptr< const rvsdg::Type lengthType,
size_t  numMemoryStates 
)
inline

Definition at line 690 of file StdLibIntrinsicOperations.hpp.

Member Function Documentation

◆ checkAndCreateOperandTypes()

static std::vector< std::shared_ptr< const rvsdg::Type > > jlm::llvm::MemMoveNonVolatileOperation::checkAndCreateOperandTypes ( const std::shared_ptr< const rvsdg::Type > &  lengthType,
const size_t  numMemoryStates 
)
inlinestaticprivate

Definition at line 741 of file StdLibIntrinsicOperations.hpp.

◆ copy()

std::unique_ptr< rvsdg::Operation > jlm::llvm::MemMoveNonVolatileOperation::copy ( ) const
overridevirtual

Implements jlm::rvsdg::Operation.

Definition at line 112 of file StdLibIntrinsicOperations.cpp.

◆ createNode()

static rvsdg::SimpleNode & jlm::llvm::MemMoveNonVolatileOperation::createNode ( rvsdg::Output dest,
rvsdg::Output src,
rvsdg::Output length,
const std::vector< rvsdg::Output * > &  memoryStates 
)
inlinestatic

Definition at line 724 of file StdLibIntrinsicOperations.hpp.

◆ createResultTypes()

static std::vector< std::shared_ptr< const rvsdg::Type > > jlm::llvm::MemMoveNonVolatileOperation::createResultTypes ( size_t  numMemoryStates)
inlinestaticprivate

Definition at line 759 of file StdLibIntrinsicOperations.hpp.

◆ createTac()

static std::unique_ptr< ThreeAddressCode > jlm::llvm::MemMoveNonVolatileOperation::createTac ( const Variable dest,
const Variable src,
const Variable length,
const std::vector< const Variable * > &  memoryStates 
)
inlinestatic

Definition at line 709 of file StdLibIntrinsicOperations.hpp.

◆ debug_string()

std::string jlm::llvm::MemMoveNonVolatileOperation::debug_string ( ) const
overridevirtual

Implements jlm::rvsdg::Operation.

Definition at line 106 of file StdLibIntrinsicOperations.cpp.

◆ numMemoryStates()

size_t jlm::llvm::MemMoveNonVolatileOperation::numMemoryStates ( ) const
overridevirtualnoexcept
Returns
Number of memory states

Implements jlm::llvm::MemMoveOperation.

Definition at line 118 of file StdLibIntrinsicOperations.cpp.

◆ operator==()

bool jlm::llvm::MemMoveNonVolatileOperation::operator== ( const Operation &  other) const
overridenoexcept

Definition at line 98 of file StdLibIntrinsicOperations.cpp.


The documentation for this class was generated from the following files: