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

Lambda operation. More...

#include <lambda.hpp>

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

Public Member Functions

 ~LlvmLambdaOperation () override
 
 LlvmLambdaOperation (std::shared_ptr< const jlm::rvsdg::FunctionType > type, std::string name, const jlm::llvm::Linkage &linkage, jlm::llvm::AttributeSet attributes)
 
const std::string & name () const noexcept
 
const jlm::llvm::Linkagelinkage () const noexcept
 
const jlm::llvm::AttributeSetattributes () const noexcept
 
std::string debug_string () const override
 
bool operator== (const Operation &other) const noexcept override
 
std::unique_ptr< Operation > copy () const override
 
const jlm::llvm::AttributeSetGetArgumentAttributes (std::size_t index) const noexcept
 
void SetArgumentAttributes (std::size_t index, const jlm::llvm::AttributeSet &attributes)
 
- Public Member Functions inherited from jlm::rvsdg::LambdaOperation
 ~LambdaOperation () override
 
 LambdaOperation (std::shared_ptr< const FunctionType > type)
 
const FunctionTypetype () const noexcept
 
const std::shared_ptr< const FunctionType > & Type () const noexcept
 
std::string debug_string () const override
 
bool operator== (const Operation &other) const noexcept override
 
std::unique_ptr< Operationcopy () const override
 
- Public Member Functions inherited from jlm::rvsdg::StructuralOperation
bool operator== (const Operation &other) const noexcept override
 
- Public Member Functions inherited from jlm::rvsdg::Operation
virtual ~Operation () noexcept
 
bool operator!= (const Operation &other) const noexcept
 

Static Public Member Functions

static rvsdg::OutputgetIOStateArgument (const rvsdg::LambdaNode &lambdaNode) noexcept
 
static std::unique_ptr< LlvmLambdaOperationCreate (std::shared_ptr< const jlm::rvsdg::FunctionType > type, std::string name, const jlm::llvm::Linkage &linkage, jlm::llvm::AttributeSet attributes)
 
static std::unique_ptr< LlvmLambdaOperationCreate (std::shared_ptr< const jlm::rvsdg::FunctionType > type, std::string name, const jlm::llvm::Linkage &linkage)
 

Private Attributes

std::string name_
 
jlm::llvm::Linkage linkage_
 
jlm::llvm::AttributeSet attributes_
 
std::vector< jlm::llvm::AttributeSetArgumentAttributes_
 

Detailed Description

Lambda operation.

A lambda operation determines a lambda's name and function type.

Definition at line 29 of file lambda.hpp.

Constructor & Destructor Documentation

◆ ~LlvmLambdaOperation()

jlm::llvm::LlvmLambdaOperation::~LlvmLambdaOperation ( )
overridedefault

◆ LlvmLambdaOperation()

jlm::llvm::LlvmLambdaOperation::LlvmLambdaOperation ( std::shared_ptr< const jlm::rvsdg::FunctionType type,
std::string  name,
const jlm::llvm::Linkage linkage,
jlm::llvm::AttributeSet  attributes 
)

Definition at line 16 of file lambda.cpp.

Member Function Documentation

◆ attributes()

const jlm::llvm::AttributeSet& jlm::llvm::LlvmLambdaOperation::attributes ( ) const
inlinenoexcept

Definition at line 53 of file lambda.hpp.

◆ copy()

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

Implements jlm::rvsdg::Operation.

Definition at line 44 of file lambda.cpp.

◆ Create() [1/2]

static std::unique_ptr<LlvmLambdaOperation> jlm::llvm::LlvmLambdaOperation::Create ( std::shared_ptr< const jlm::rvsdg::FunctionType type,
std::string  name,
const jlm::llvm::Linkage linkage 
)
inlinestatic

Definition at line 91 of file lambda.hpp.

◆ Create() [2/2]

static std::unique_ptr<LlvmLambdaOperation> jlm::llvm::LlvmLambdaOperation::Create ( std::shared_ptr< const jlm::rvsdg::FunctionType type,
std::string  name,
const jlm::llvm::Linkage linkage,
jlm::llvm::AttributeSet  attributes 
)
inlinestatic

Definition at line 77 of file lambda.hpp.

◆ debug_string()

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

Implements jlm::rvsdg::Operation.

Definition at line 30 of file lambda.cpp.

◆ GetArgumentAttributes()

const jlm::llvm::AttributeSet & jlm::llvm::LlvmLambdaOperation::GetArgumentAttributes ( std::size_t  index) const
noexcept

Definition at line 50 of file lambda.cpp.

◆ getIOStateArgument()

rvsdg::Output & jlm::llvm::LlvmLambdaOperation::getIOStateArgument ( const rvsdg::LambdaNode lambdaNode)
staticnoexcept

Definition at line 66 of file lambda.cpp.

◆ linkage()

const jlm::llvm::Linkage& jlm::llvm::LlvmLambdaOperation::linkage ( ) const
inlinenoexcept

Definition at line 47 of file lambda.hpp.

◆ name()

const std::string& jlm::llvm::LlvmLambdaOperation::name ( ) const
inlinenoexcept

Definition at line 41 of file lambda.hpp.

◆ operator==()

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

Definition at line 36 of file lambda.cpp.

◆ SetArgumentAttributes()

void jlm::llvm::LlvmLambdaOperation::SetArgumentAttributes ( std::size_t  index,
const jlm::llvm::AttributeSet attributes 
)

Definition at line 57 of file lambda.cpp.

Member Data Documentation

◆ ArgumentAttributes_

std::vector<jlm::llvm::AttributeSet> jlm::llvm::LlvmLambdaOperation::ArgumentAttributes_
private

Definition at line 107 of file lambda.hpp.

◆ attributes_

jlm::llvm::AttributeSet jlm::llvm::LlvmLambdaOperation::attributes_
private

Definition at line 106 of file lambda.hpp.

◆ linkage_

jlm::llvm::Linkage jlm::llvm::LlvmLambdaOperation::linkage_
private

Definition at line 105 of file lambda.hpp.

◆ name_

std::string jlm::llvm::LlvmLambdaOperation::name_
private

Definition at line 104 of file lambda.hpp.


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