Jlm
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
jlm::llvm::InsertValueOperation Class Referencefinal

#include <AggregateOperations.hpp>

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

Public Member Functions

 ~InsertValueOperation () noexcept override
 
const std::shared_ptr< const rvsdg::Type > & getAggregateType () const noexcept
 
const std::shared_ptr< const rvsdg::Type > & getValueType () const noexcept
 
const std::vector< unsigned > & getIndices () const noexcept
 
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::unique_ptr< InsertValueOperationcreate (const std::shared_ptr< const rvsdg::Type > &aggregateType, const std::shared_ptr< const rvsdg::Type > &valueType, std::vector< unsigned > indices)
 
static rvsdg::SimpleNodecreateNode (rvsdg::Output &aggregateOperand, rvsdg::Output &valueOperand, std::vector< unsigned > indices)
 
static std::unique_ptr< ThreeAddressCodecreateTac (const Variable &aggregateOperand, const Variable &valueOperand, std::vector< unsigned > indices)
 

Private Member Functions

 InsertValueOperation (const std::shared_ptr< const rvsdg::Type > &aggregateType, const std::shared_ptr< const rvsdg::Type > &valueType, std::vector< unsigned > indices)
 

Static Private Member Functions

static void checkOperandTypes (const std::shared_ptr< const rvsdg::Type > &aggregateType, const std::shared_ptr< const rvsdg::Type > &valueType, const std::vector< unsigned > &indices)
 

Private Attributes

std::vector< unsigned > indices_ {}
 

Detailed Description

Represents LLVM's insertvalue instruction.

See LLVM Language Reference Manual for more details.

Definition at line 111 of file AggregateOperations.hpp.

Constructor & Destructor Documentation

◆ ~InsertValueOperation()

jlm::llvm::InsertValueOperation::~InsertValueOperation ( )
overridedefaultnoexcept

◆ InsertValueOperation()

jlm::llvm::InsertValueOperation::InsertValueOperation ( const std::shared_ptr< const rvsdg::Type > &  aggregateType,
const std::shared_ptr< const rvsdg::Type > &  valueType,
std::vector< unsigned >  indices 
)
inlineprivate

Definition at line 117 of file AggregateOperations.hpp.

Member Function Documentation

◆ checkOperandTypes()

static void jlm::llvm::InsertValueOperation::checkOperandTypes ( const std::shared_ptr< const rvsdg::Type > &  aggregateType,
const std::shared_ptr< const rvsdg::Type > &  valueType,
const std::vector< unsigned > &  indices 
)
inlinestaticprivate

Definition at line 193 of file AggregateOperations.hpp.

◆ copy()

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

Implements jlm::rvsdg::Operation.

Definition at line 41 of file AggregateOperations.cpp.

◆ create()

static std::unique_ptr<InsertValueOperation> jlm::llvm::InsertValueOperation::create ( const std::shared_ptr< const rvsdg::Type > &  aggregateType,
const std::shared_ptr< const rvsdg::Type > &  valueType,
std::vector< unsigned >  indices 
)
inlinestatic

Definition at line 154 of file AggregateOperations.hpp.

◆ createNode()

static rvsdg::SimpleNode& jlm::llvm::InsertValueOperation::createNode ( rvsdg::Output aggregateOperand,
rvsdg::Output valueOperand,
std::vector< unsigned >  indices 
)
inlinestatic

Definition at line 165 of file AggregateOperations.hpp.

◆ createTac()

static std::unique_ptr<ThreeAddressCode> jlm::llvm::InsertValueOperation::createTac ( const Variable aggregateOperand,
const Variable valueOperand,
std::vector< unsigned >  indices 
)
inlinestatic

Definition at line 179 of file AggregateOperations.hpp.

◆ debug_string()

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

Implements jlm::rvsdg::Operation.

Definition at line 35 of file AggregateOperations.cpp.

◆ getAggregateType()

const std::shared_ptr<const rvsdg::Type>& jlm::llvm::InsertValueOperation::getAggregateType ( ) const
inlinenoexcept

Definition at line 127 of file AggregateOperations.hpp.

◆ getIndices()

const std::vector<unsigned>& jlm::llvm::InsertValueOperation::getIndices ( ) const
inlinenoexcept

Definition at line 139 of file AggregateOperations.hpp.

◆ getValueType()

const std::shared_ptr<const rvsdg::Type>& jlm::llvm::InsertValueOperation::getValueType ( ) const
inlinenoexcept

Definition at line 133 of file AggregateOperations.hpp.

◆ operator==()

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

Definition at line 47 of file AggregateOperations.cpp.

Member Data Documentation

◆ indices_

std::vector<unsigned> jlm::llvm::InsertValueOperation::indices_ {}
private

Definition at line 232 of file AggregateOperations.hpp.


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