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

#include <operators.hpp>

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

Public Member Functions

 ~FreeOperation () noexcept override
 
 FreeOperation (size_t numMemoryStates)
 
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 rvsdg::InputaddressInput (const rvsdg::Node &node) noexcept
 
static rvsdg::InputmapMemoryStateOutputToInput (rvsdg::Output &output) noexcept
 
static std::unique_ptr< llvm::ThreeAddressCodeCreate (const Variable *pointer, const std::vector< const Variable * > &memoryStates, const Variable *iOState)
 
static std::vector< jlm::rvsdg::Output * > Create (jlm::rvsdg::Output *pointer, const std::vector< jlm::rvsdg::Output * > &memoryStates, jlm::rvsdg::Output *iOState)
 

Static Private Member Functions

static std::vector< std::shared_ptr< const rvsdg::Type > > CreateOperandTypes (size_t numMemoryStates)
 
static std::vector< std::shared_ptr< const rvsdg::Type > > CreateResultTypes (size_t numMemoryStates)
 

Detailed Description

Represents the standard C library call free() used for freeing dynamically allocated memory.

This operation has no equivalent LLVM instruction.

Definition at line 2511 of file operators.hpp.

Constructor & Destructor Documentation

◆ ~FreeOperation()

jlm::llvm::FreeOperation::~FreeOperation ( )
overridedefaultnoexcept

◆ FreeOperation()

jlm::llvm::FreeOperation::FreeOperation ( size_t  numMemoryStates)
inlineexplicit

Definition at line 2516 of file operators.hpp.

Member Function Documentation

◆ addressInput()

static rvsdg::Input& jlm::llvm::FreeOperation::addressInput ( const rvsdg::Node node)
inlinestaticnoexcept
Parameters
nodea SimpleNode containing a FreeOperation
Returns
the input of node that takes the pointer value to be freed.

Definition at line 2534 of file operators.hpp.

◆ copy()

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

Implements jlm::rvsdg::Operation.

Definition at line 1126 of file operators.cpp.

◆ Create() [1/2]

static std::unique_ptr<llvm::ThreeAddressCode> jlm::llvm::FreeOperation::Create ( const Variable pointer,
const std::vector< const Variable * > &  memoryStates,
const Variable iOState 
)
inlinestatic

Definition at line 2554 of file operators.hpp.

◆ Create() [2/2]

static std::vector<jlm::rvsdg::Output *> jlm::llvm::FreeOperation::Create ( jlm::rvsdg::Output pointer,
const std::vector< jlm::rvsdg::Output * > &  memoryStates,
jlm::rvsdg::Output iOState 
)
inlinestatic

Definition at line 2569 of file operators.hpp.

◆ CreateOperandTypes()

static std::vector<std::shared_ptr<const rvsdg::Type> > jlm::llvm::FreeOperation::CreateOperandTypes ( size_t  numMemoryStates)
inlinestaticprivate

Definition at line 2584 of file operators.hpp.

◆ CreateResultTypes()

static std::vector<std::shared_ptr<const rvsdg::Type> > jlm::llvm::FreeOperation::CreateResultTypes ( size_t  numMemoryStates)
inlinestaticprivate

Definition at line 2598 of file operators.hpp.

◆ debug_string()

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

Implements jlm::rvsdg::Operation.

Definition at line 1120 of file operators.cpp.

◆ mapMemoryStateOutputToInput()

static rvsdg::Input& jlm::llvm::FreeOperation::mapMemoryStateOutputToInput ( rvsdg::Output output)
inlinestaticnoexcept

Definition at line 2543 of file operators.hpp.

◆ operator==()

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

Definition at line 1113 of file operators.cpp.


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