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

#include <Store.hpp>

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

Public Member Functions

size_t GetAlignment () const noexcept
 
const rvsdg::TypeGetStoredType () 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::InputStoredValueInput (const rvsdg::Node &node) noexcept
 
static rvsdg::Node::OutputIteratorRange MemoryStateOutputs (const rvsdg::SimpleNode &node) noexcept
 
static rvsdg::InputMapMemoryStateOutputToInput (const rvsdg::Output &output)
 

Protected Member Functions

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

Private Attributes

size_t NumMemoryStates_
 
size_t Alignment_
 

Detailed Description

Abstract base class for store operations.

See also
StoreVolatileOperation
StoreNonVolatileOperation

Definition at line 25 of file Store.hpp.

Constructor & Destructor Documentation

◆ StoreOperation()

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

Definition at line 28 of file Store.hpp.

Member Function Documentation

◆ AddressInput()

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

Definition at line 75 of file Store.hpp.

◆ GetAlignment()

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

Definition at line 57 of file Store.hpp.

◆ GetStoredType()

const rvsdg::Type& jlm::llvm::StoreOperation::GetStoredType ( ) const
inlinenoexcept

Definition at line 63 of file Store.hpp.

◆ MapMemoryStateOutputToInput()

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

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

Definition at line 111 of file Store.hpp.

◆ MemoryStateOutputs()

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

Definition at line 93 of file Store.hpp.

◆ NumMemoryStates()

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

Definition at line 69 of file Store.hpp.

◆ StoredValueInput()

static rvsdg::Input& jlm::llvm::StoreOperation::StoredValueInput ( const rvsdg::Node node)
inlinestaticnoexcept

Definition at line 84 of file Store.hpp.

Member Data Documentation

◆ Alignment_

size_t jlm::llvm::StoreOperation::Alignment_
private

Definition at line 124 of file Store.hpp.

◆ NumMemoryStates_

size_t jlm::llvm::StoreOperation::NumMemoryStates_
private

Definition at line 123 of file Store.hpp.


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