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

Interpret pointer as callable function. More...

#include <FunctionPointer.hpp>

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

Public Member Functions

 ~PointerToFunctionOperation () noexcept override
 
 PointerToFunctionOperation (std::shared_ptr< const rvsdg::FunctionType > fn)
 
bool operator== (const Operation &other) const noexcept override
 
std::string debug_string () const override
 
std::unique_ptr< rvsdg::Operationcopy () const override
 
rvsdg::unop_reduction_path_t can_reduce_operand (const jlm::rvsdg::Output *arg) const noexcept override
 
jlm::rvsdg::Outputreduce_operand (rvsdg::unop_reduction_path_t path, jlm::rvsdg::Output *arg) const override
 
const std::shared_ptr< const rvsdg::FunctionType > & FunctionType () const noexcept
 
- Public Member Functions inherited from jlm::rvsdg::UnaryOperation
 ~UnaryOperation () noexcept override
 
 UnaryOperation (std::shared_ptr< const jlm::rvsdg::Type > operand, std::shared_ptr< const jlm::rvsdg::Type > result)
 
- 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< PointerToFunctionOperationCreate (std::shared_ptr< const rvsdg::FunctionType > fn)
 

Private Attributes

std::shared_ptr< const rvsdg::FunctionTypeFunctionType_
 

Detailed Description

Interpret pointer as callable function.

Definition at line 58 of file FunctionPointer.hpp.

Constructor & Destructor Documentation

◆ ~PointerToFunctionOperation()

jlm::llvm::PointerToFunctionOperation::~PointerToFunctionOperation ( )
overridenoexcept

Definition at line 86 of file FunctionPointer.cpp.

◆ PointerToFunctionOperation()

jlm::llvm::PointerToFunctionOperation::PointerToFunctionOperation ( std::shared_ptr< const rvsdg::FunctionType fn)

Definition at line 89 of file FunctionPointer.cpp.

Member Function Documentation

◆ can_reduce_operand()

rvsdg::unop_reduction_path_t jlm::llvm::PointerToFunctionOperation::can_reduce_operand ( const jlm::rvsdg::Output arg) const
overridevirtualnoexcept

Implements jlm::rvsdg::UnaryOperation.

Definition at line 121 of file FunctionPointer.cpp.

◆ copy()

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

Implements jlm::rvsdg::Operation.

Definition at line 115 of file FunctionPointer.cpp.

◆ Create()

std::unique_ptr< PointerToFunctionOperation > jlm::llvm::PointerToFunctionOperation::Create ( std::shared_ptr< const rvsdg::FunctionType fn)
static

Definition at line 155 of file FunctionPointer.cpp.

◆ debug_string()

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

Implements jlm::rvsdg::Operation.

Definition at line 109 of file FunctionPointer.cpp.

◆ FunctionType()

const std::shared_ptr<const rvsdg::FunctionType>& jlm::llvm::PointerToFunctionOperation::FunctionType ( ) const
inlinenoexcept

Definition at line 84 of file FunctionPointer.hpp.

◆ operator==()

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

Definition at line 96 of file FunctionPointer.cpp.

◆ reduce_operand()

jlm::rvsdg::Output * jlm::llvm::PointerToFunctionOperation::reduce_operand ( rvsdg::unop_reduction_path_t  path,
jlm::rvsdg::Output arg 
) const
overridevirtual

Implements jlm::rvsdg::UnaryOperation.

Definition at line 137 of file FunctionPointer.cpp.

Member Data Documentation

◆ FunctionType_

std::shared_ptr<const rvsdg::FunctionType> jlm::llvm::PointerToFunctionOperation::FunctionType_
private

Definition at line 90 of file FunctionPointer.hpp.


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