Jlm
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
jlm::llvm::LoadOperation Class Reference

#include <Load.hpp>

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

Public Member Functions

size_t GetAlignment () const noexcept
 
std::shared_ptr< const rvsdg::TypeGetLoadedType () const noexcept
 
size_t NumMemoryStates () 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
 
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::InputAddressInput (const rvsdg::Node &node) noexcept
 
static rvsdg::OutputLoadedValueOutput (const rvsdg::Node &node)
 
static rvsdg::Node::OutputIteratorRange MemoryStateOutputs (const rvsdg::Node &node) noexcept
 
static rvsdg::Node::InputIteratorRange MemoryStateInputs (const rvsdg::Node &node) noexcept
 
static rvsdg::InputMapMemoryStateOutputToInput (const rvsdg::Output &output)
 
static rvsdg::OutputmapMemoryStateInputToOutput (const rvsdg::Input &input)
 

Protected Member Functions

 LoadOperation (const std::vector< std::shared_ptr< const rvsdg::Type >> &operandTypes, const std::vector< std::shared_ptr< const rvsdg::Type >> &resultTypes, const size_t numMemoryStates, const size_t alignment)
 

Private Attributes

size_t NumMemoryStates_
 
size_t Alignment_
 

Detailed Description

Abstract base class for load operations.

See also
LoadVolatileOperation
LoadNonVolatileOperation

Definition at line 25 of file Load.hpp.

Constructor & Destructor Documentation

◆ LoadOperation()

jlm::llvm::LoadOperation::LoadOperation ( const std::vector< std::shared_ptr< const rvsdg::Type >> &  operandTypes,
const std::vector< std::shared_ptr< const rvsdg::Type >> &  resultTypes,
const size_t  numMemoryStates,
const size_t  alignment 
)
inlineprotected

Definition at line 28 of file Load.hpp.

Member Function Documentation

◆ AddressInput()

static rvsdg::Input& jlm::llvm::LoadOperation::AddressInput ( const rvsdg::Node node)
inlinestaticnoexcept

Definition at line 75 of file Load.hpp.

◆ GetAlignment()

size_t jlm::llvm::LoadOperation::GetAlignment ( ) const
inlinenoexcept

Definition at line 57 of file Load.hpp.

◆ GetLoadedType()

std::shared_ptr<const rvsdg::Type> jlm::llvm::LoadOperation::GetLoadedType ( ) const
inlinenoexcept

Definition at line 63 of file Load.hpp.

◆ LoadedValueOutput()

static rvsdg::Output& jlm::llvm::LoadOperation::LoadedValueOutput ( const rvsdg::Node node)
inlinestatic

Definition at line 84 of file Load.hpp.

◆ mapMemoryStateInputToOutput()

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

Maps a memory state input of a load operation to its corresponding memory state output.

Definition at line 157 of file Load.hpp.

◆ MapMemoryStateOutputToInput()

static rvsdg::Input& jlm::llvm::LoadOperation::MapMemoryStateOutputToInput ( const rvsdg::Output output)
inlinestatic

Maps a memory state output of a load operation to its corresponding memory state input.

Definition at line 142 of file Load.hpp.

◆ MemoryStateInputs()

static rvsdg::Node::InputIteratorRange jlm::llvm::LoadOperation::MemoryStateInputs ( const rvsdg::Node node)
inlinestaticnoexcept

Returns a range over the memory state inputs of a LoadOperation node.

Parameters
nodeA LoadOperation node.
Returns
A range over the memory state inputs of node.
Precondition
node is expected to be a LoadOperation node.

Definition at line 124 of file Load.hpp.

◆ MemoryStateOutputs()

static rvsdg::Node::OutputIteratorRange jlm::llvm::LoadOperation::MemoryStateOutputs ( const rvsdg::Node node)
inlinestaticnoexcept

Returns a range over the memory state outputs of a LoadOperation node.

Parameters
nodeA LoadOperation node.
Returns
A range over the memory state outputs of node.
Precondition
node is expected to be a LoadOperation node.

Definition at line 101 of file Load.hpp.

◆ NumMemoryStates()

size_t jlm::llvm::LoadOperation::NumMemoryStates ( ) const
inlinenoexcept

Definition at line 69 of file Load.hpp.

Member Data Documentation

◆ Alignment_

size_t jlm::llvm::LoadOperation::Alignment_
private

Definition at line 170 of file Load.hpp.

◆ NumMemoryStates_

size_t jlm::llvm::LoadOperation::NumMemoryStates_
private

Definition at line 169 of file Load.hpp.


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