Jlm
Loading...
Searching...
No Matches
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 (const size_t numMemoryStates)
 
bool operator== (const Operation &other) const noexcept override
 
std::string debug_string () const override
 
std::unique_ptr< Operation > copy () const override
 
size_t numMemoryStates () const noexcept
 
- 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::Input & getAddressInput (const rvsdg::Node &node) noexcept
 
static rvsdg::Input & getIOStateInput (const rvsdg::Node &node) noexcept
 
static rvsdg::Output & getIOStateOutput (const rvsdg::Node &node) noexcept
 
static rvsdg::Input & mapMemoryStateOutputToInput (rvsdg::Output &output) noexcept
 
static rvsdg::Node::OutputIteratorRange memoryStateOutputs (const rvsdg::Node &node) noexcept
 
static std::unique_ptr< ThreeAddressCode > Create (const Variable *pointer, const Variable *iOState, const std::vector< const Variable * > &memoryStates)
 
static rvsdg::SimpleNode & createNode (rvsdg::Output &pointer, rvsdg::Output &iOState, const std::vector< rvsdg::Output * > &memoryStates)
 
static std::vector< rvsdg::Output * > Create (rvsdg::Output &pointer, rvsdg::Output &IOState, const std::vector< rvsdg::Output * > &memoryStates)
 

Static Private Member Functions

static std::vector< std::shared_ptr< const rvsdg::Type > > createOperandTypes (const size_t numMemoryStates)
 
static std::vector< std::shared_ptr< const rvsdg::Type > > createResultTypes (const 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 1759 of file operators.hpp.

Constructor & Destructor Documentation

◆ ~FreeOperation()

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

◆ FreeOperation()

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

Definition at line 1764 of file operators.hpp.

Member Function Documentation

◆ copy()

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

Implements jlm::rvsdg::Operation.

Definition at line 1040 of file operators.cpp.

◆ Create() [1/2]

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

Definition at line 1841 of file operators.hpp.

◆ Create() [2/2]

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

Definition at line 1870 of file operators.hpp.

◆ createNode()

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

Definition at line 1856 of file operators.hpp.

◆ createOperandTypes()

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

Definition at line 1880 of file operators.hpp.

◆ createResultTypes()

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

Definition at line 1890 of file operators.hpp.

◆ debug_string()

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

Implements jlm::rvsdg::Operation.

Definition at line 1034 of file operators.cpp.

◆ getAddressInput()

static rvsdg::Input & jlm::llvm::FreeOperation::getAddressInput ( 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 1789 of file operators.hpp.

◆ getIOStateInput()

static rvsdg::Input & jlm::llvm::FreeOperation::getIOStateInput ( const rvsdg::Node &  node)
inlinestaticnoexcept

Definition at line 1798 of file operators.hpp.

◆ getIOStateOutput()

static rvsdg::Output & jlm::llvm::FreeOperation::getIOStateOutput ( const rvsdg::Node &  node)
inlinestaticnoexcept

Definition at line 1807 of file operators.hpp.

◆ mapMemoryStateOutputToInput()

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

Definition at line 1816 of file operators.hpp.

◆ memoryStateOutputs()

static rvsdg::Node::OutputIteratorRange jlm::llvm::FreeOperation::memoryStateOutputs ( const rvsdg::Node &  node)
inlinestaticnoexcept

Definition at line 1827 of file operators.hpp.

◆ numMemoryStates()

size_t jlm::llvm::FreeOperation::numMemoryStates ( ) const
inlinenoexcept

Definition at line 1778 of file operators.hpp.

◆ operator==()

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

Definition at line 1027 of file operators.cpp.


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