6 #ifndef JLM_LLVM_IR_OPERATORS_LAMBDA_HPP
7 #define JLM_LLVM_IR_OPERATORS_LAMBDA_HPP
35 std::shared_ptr<const jlm::rvsdg::FunctionType>
type,
41 [[nodiscard]]
const std::string &
65 [[nodiscard]] std::string
69 operator==(
const Operation & other)
const noexcept
override;
71 [[nodiscard]] std::unique_ptr<Operation>
72 copy()
const override;
83 static std::unique_ptr<LlvmLambdaOperation>
85 std::shared_ptr<const jlm::rvsdg::FunctionType>
type,
91 return std::make_unique<LlvmLambdaOperation>(
103 static std::unique_ptr<LlvmLambdaOperation>
105 std::shared_ptr<const jlm::rvsdg::FunctionType>
type,
109 return std::make_unique<LlvmLambdaOperation>(
std::unique_ptr< Operation > copy() const override
std::vector< jlm::llvm::AttributeSet > ArgumentAttributes_
static std::unique_ptr< LlvmLambdaOperation > Create(std::shared_ptr< const jlm::rvsdg::FunctionType > type, std::string name, const jlm::llvm::Linkage &linkage)
const jlm::llvm::Linkage & linkage() const noexcept
CallingConvention callingConvention() const noexcept
static rvsdg::Output & getIOStateArgument(const rvsdg::LambdaNode &lambdaNode) noexcept
~LlvmLambdaOperation() override
std::string debug_string() const override
jlm::llvm::AttributeSet attributes_
jlm::llvm::CallingConvention callingConvention_
void SetArgumentAttributes(std::size_t index, const jlm::llvm::AttributeSet &attributes)
static std::unique_ptr< LlvmLambdaOperation > Create(std::shared_ptr< const jlm::rvsdg::FunctionType > type, std::string name, const jlm::llvm::Linkage &linkage, jlm::llvm::CallingConvention callingConvention, jlm::llvm::AttributeSet attributes)
bool operator==(const Operation &other) const noexcept override
const std::string & name() const noexcept
LlvmLambdaOperation(std::shared_ptr< const jlm::rvsdg::FunctionType > type, std::string name, const jlm::llvm::Linkage &linkage, jlm::llvm::CallingConvention callingConvention_, jlm::llvm::AttributeSet attributes)
const jlm::llvm::AttributeSet & GetArgumentAttributes(std::size_t index) const noexcept
const jlm::llvm::AttributeSet & attributes() const noexcept
jlm::llvm::Linkage linkage_
const FunctionType & type() const noexcept
Global memory state passed between functions.