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

FreezeOperation class. More...

#include <operators.hpp>

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

Public Member Functions

 ~FreezeOperation () noexcept override
 
 FreezeOperation (std::shared_ptr< const jlm::rvsdg::Type > type)
 
bool operator== (const Operation &other) const noexcept 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
 
std::string debug_string () const override
 
std::unique_ptr< Operation > copy () const override
 
const jlm::rvsdg::TypegetType () 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< llvm::ThreeAddressCodecreateTac (const Variable &operand)
 
static jlm::rvsdg::NodecreateNode (jlm::rvsdg::Output &operand)
 

Detailed Description

FreezeOperation class.

This operator is the Jlm equivalent of LLVM's freeze operation. It converts undef and poison values into arbitrary, but fixed, values. For all other inputs it is a no-op.

Definition at line 1159 of file operators.hpp.

Constructor & Destructor Documentation

◆ ~FreezeOperation()

jlm::llvm::FreezeOperation::~FreezeOperation ( )
overridedefaultnoexcept

◆ FreezeOperation()

jlm::llvm::FreezeOperation::FreezeOperation ( std::shared_ptr< const jlm::rvsdg::Type type)
inlineexplicit

Definition at line 1164 of file operators.hpp.

Member Function Documentation

◆ can_reduce_operand()

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

Implements jlm::rvsdg::UnaryOperation.

Definition at line 609 of file operators.cpp.

◆ copy()

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

Implements jlm::rvsdg::Operation.

Definition at line 629 of file operators.cpp.

◆ createNode()

static jlm::rvsdg::Node& jlm::llvm::FreezeOperation::createNode ( jlm::rvsdg::Output operand)
inlinestatic

Definition at line 1200 of file operators.hpp.

◆ createTac()

static std::unique_ptr<llvm::ThreeAddressCode> jlm::llvm::FreezeOperation::createTac ( const Variable operand)
inlinestatic

Definition at line 1193 of file operators.hpp.

◆ debug_string()

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

Implements jlm::rvsdg::Operation.

Definition at line 623 of file operators.cpp.

◆ getType()

const jlm::rvsdg::Type& jlm::llvm::FreezeOperation::getType ( ) const
inlinenoexcept

Definition at line 1187 of file operators.hpp.

◆ operator==()

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

Definition at line 602 of file operators.cpp.

◆ reduce_operand()

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

Implements jlm::rvsdg::UnaryOperation.

Definition at line 615 of file operators.cpp.


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