Jlm
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
jlm::llvm::MemCpyOperation Class Referenceabstract

#include <MemCpy.hpp>

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

Public Member Functions

const rvsdg::BitTypeLengthType () const noexcept
 
virtual size_t NumMemoryStates () const noexcept=0
 
- 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
 
virtual std::string debug_string () const =0
 
virtual std::unique_ptr< Operationcopy () const =0
 
bool operator!= (const Operation &other) const noexcept
 

Static Public Member Functions

static rvsdg::InputdestinationInput (const rvsdg::Node &node) noexcept
 
static rvsdg::InputsourceInput (const rvsdg::Node &node) noexcept
 
static rvsdg::InputcountInput (const rvsdg::Node &node) noexcept
 
static rvsdg::InputmapMemoryStateOutputToInput (const rvsdg::Output &output)
 
static rvsdg::OutputmapMemoryStateInputToOutput (const rvsdg::Input &input)
 

Protected Member Functions

 MemCpyOperation (const std::vector< std::shared_ptr< const rvsdg::Type >> &operandTypes, const std::vector< std::shared_ptr< const rvsdg::Type >> &resultTypes)
 

Detailed Description

Abstract base class for memcpy operations.

See also
MemCpyNonVolatileOperation
MemCpyVolatileOperation

Definition at line 23 of file MemCpy.hpp.

Constructor & Destructor Documentation

◆ MemCpyOperation()

jlm::llvm::MemCpyOperation::MemCpyOperation ( const std::vector< std::shared_ptr< const rvsdg::Type >> &  operandTypes,
const std::vector< std::shared_ptr< const rvsdg::Type >> &  resultTypes 
)
inlineprotected

Definition at line 26 of file MemCpy.hpp.

Member Function Documentation

◆ countInput()

static rvsdg::Input& jlm::llvm::MemCpyOperation::countInput ( const rvsdg::Node node)
inlinestaticnoexcept
Parameters
nodea SimpleNode containing a MemCpyOperation
Returns
the input of node that takes the number of bytes to copy.

Definition at line 95 of file MemCpy.hpp.

◆ destinationInput()

static rvsdg::Input& jlm::llvm::MemCpyOperation::destinationInput ( const rvsdg::Node node)
inlinestaticnoexcept
Parameters
nodea SimpleNode containing a MemCpyOperation
Returns
the input of node that takes the pointer to store bytes to.

Definition at line 69 of file MemCpy.hpp.

◆ LengthType()

const rvsdg::BitType& jlm::llvm::MemCpyOperation::LengthType ( ) const
inlinenoexcept

Definition at line 54 of file MemCpy.hpp.

◆ mapMemoryStateInputToOutput()

static rvsdg::Output& jlm::llvm::MemCpyOperation::mapMemoryStateInputToOutput ( const rvsdg::Input input)
inlinestatic

Maps a memory state input to its corresponding memory state output.

Definition at line 127 of file MemCpy.hpp.

◆ mapMemoryStateOutputToInput()

static rvsdg::Input& jlm::llvm::MemCpyOperation::mapMemoryStateOutputToInput ( const rvsdg::Output output)
inlinestatic

Maps a memory state output to its corresponding memory state input.

Definition at line 107 of file MemCpy.hpp.

◆ NumMemoryStates()

virtual size_t jlm::llvm::MemCpyOperation::NumMemoryStates ( ) const
pure virtualnoexcept

◆ sourceInput()

static rvsdg::Input& jlm::llvm::MemCpyOperation::sourceInput ( const rvsdg::Node node)
inlinestaticnoexcept
Parameters
nodea SimpleNode containing a MemCpyOperation
Returns
the input of node that takes the pointer to load bytes from.

Definition at line 82 of file MemCpy.hpp.


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