GNU Octave  6.2.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE > Class Template Reference

#include "jit-ir.h"

Inheritance diagram for octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >:
Collaboration diagram for octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >:

Public Types

typedef PASS_T pass_t
 

Public Member Functions

 jit_const (PASS_T avalue)
 
virtual void accept (jit_ir_walker &walker)
 
jit_usefirst_use (void) const
 
jit_blockfirst_use_block (void)
 
bool has_llvm (void) const
 
bool in_worklist (void) const
 
jit_instructionlast_use (void) const
 
virtual bool needs_release (void) const
 
virtual std::ostream & print (std::ostream &os, size_t indent=0) const
 
std::string print_string (void)
 
virtual void replace_with (jit_value *m_value)
 
virtual std::ostream & short_print (std::ostream &os) const
 
void stash_in_worklist (bool ain_worklist)
 
void stash_last_use (jit_instruction *alast_use)
 
void stash_llvm (llvm::Value *compiled)
 
void stash_type (jit_type *new_type)
 
llvm::Value * to_llvm (void) const
 
jit_typetype (void) const
 
llvm::Type * type_llvm (void) const
 
const std::string & type_name (void) const
 
size_t use_count (void) const
 
PASS_T value (void) const
 

Protected Member Functions

std::ostream & print_indent (std::ostream &os, size_t indent=0) const
 

Protected Attributes

llvm::Value * m_llvm_value
 

Private Attributes

bool m_in_worklist
 
jit_instructionm_last_use
 
jit_typem_type
 
size_t m_use_count
 
jit_usem_use_head
 
jit_usem_use_tail
 
m_value
 

Detailed Description

template<typename T, jit_type *(*)(void) EXTRACT_T, typename PASS_T, bool QUOTE>
class octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >

Definition at line 524 of file jit-ir.h.

Member Typedef Documentation

◆ pass_t

template<typename T , jit_type *(*)(void) EXTRACT_T, typename PASS_T , bool QUOTE>
typedef PASS_T octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >::pass_t

Definition at line 529 of file jit-ir.h.

Constructor & Destructor Documentation

◆ jit_const()

template<typename T , jit_type *(*)(void) EXTRACT_T, typename PASS_T , bool QUOTE>
octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >::jit_const ( PASS_T  avalue)
inline

Definition at line 531 of file jit-ir.h.

Member Function Documentation

◆ accept()

template<typename T , jit_type *(*)(void) EXTRACT_T, typename PASS_T , bool QUOTE>
void octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >::accept ( jit_ir_walker walker)
virtual

Implements octave::jit_value.

Definition at line 1479 of file jit-ir.h.

References octave::jit_ir_walker::visit().

◆ first_use()

jit_use * octave::jit_internal_list< jit_value , jit_use >::first_use ( void  ) const
inlineinherited

Definition at line 145 of file jit-util.h.

◆ first_use_block()

◆ has_llvm()

bool octave::jit_value::has_llvm ( void  ) const
inlineinherited

Definition at line 248 of file jit-ir.h.

◆ in_worklist()

bool octave::jit_value::in_worklist ( void  ) const
inlineinherited

Definition at line 194 of file jit-ir.h.

Referenced by octave::jit_infer::push_worklist().

◆ last_use()

jit_instruction* octave::jit_value::last_use ( void  ) const
inlineinherited

Definition at line 232 of file jit-ir.h.

◆ needs_release()

virtual bool octave::jit_value::needs_release ( void  ) const
inlinevirtualinherited

Reimplemented in octave::jit_call.

Definition at line 239 of file jit-ir.h.

Referenced by octave::jit_infer::release_dead_phi(), and octave::jit_infer::release_temp().

◆ print()

template<typename T , jit_type *(*)(void) EXTRACT_T, typename PASS_T , bool QUOTE>
virtual std::ostream& octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >::print ( std::ostream &  os,
size_t  indent = 0 
) const
inlinevirtual

Implements octave::jit_value.

Definition at line 538 of file jit-ir.h.

References octave::jit_print().

◆ print_indent()

std::ostream& octave::jit_value::print_indent ( std::ostream &  os,
size_t  indent = 0 
) const
inlineprotectedinherited

◆ print_string()

std::string octave::jit_value::print_string ( void  )
inlineinherited

Definition at line 225 of file jit-ir.h.

◆ replace_with()

◆ short_print()

virtual std::ostream& octave::jit_value::short_print ( std::ostream &  os) const
inlinevirtualinherited

◆ stash_in_worklist()

void octave::jit_value::stash_in_worklist ( bool  ain_worklist)
inlineinherited

Definition at line 199 of file jit-ir.h.

Referenced by octave::jit_infer::push_worklist().

◆ stash_last_use()

void octave::jit_value::stash_last_use ( jit_instruction alast_use)
inlineinherited

Definition at line 234 of file jit-ir.h.

◆ stash_llvm()

void octave::jit_value::stash_llvm ( llvm::Value *  compiled)
inlineinherited

Definition at line 259 of file jit-ir.h.

Referenced by octave::jit_convert_llvm::convert(), and octave::jit_convert_llvm::visit().

◆ stash_type()

void octave::jit_value::stash_type ( jit_type new_type)
inlineinherited

◆ to_llvm()

llvm::Value* octave::jit_value::to_llvm ( void  ) const
inlineinherited

◆ type()

◆ type_llvm()

llvm::Type* octave::jit_value::type_llvm ( void  ) const
inlineinherited

Definition at line 213 of file jit-ir.h.

Referenced by octave::jit_convert_llvm::visit().

◆ type_name()

const std::string& octave::jit_value::type_name ( void  ) const
inlineinherited

Definition at line 218 of file jit-ir.h.

◆ use_count()

size_t octave::jit_internal_list< jit_value , jit_use >::use_count ( void  ) const
inlineinherited

Definition at line 147 of file jit-util.h.

◆ value()

template<typename T , jit_type *(*)(void) EXTRACT_T, typename PASS_T , bool QUOTE>
PASS_T octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >::value ( void  ) const
inline

Definition at line 536 of file jit-ir.h.

Referenced by octave::jit_typeinfo::do_end(), and octave::jit_convert_llvm::visit().

Member Data Documentation

◆ m_in_worklist

bool octave::jit_value::m_in_worklist
privateinherited

Definition at line 279 of file jit-ir.h.

◆ m_last_use

jit_instruction* octave::jit_value::m_last_use
privateinherited

Definition at line 278 of file jit-ir.h.

◆ m_llvm_value

llvm::Value* octave::jit_value::m_llvm_value
protectedinherited

Definition at line 273 of file jit-ir.h.

Referenced by octave::jit_block::to_llvm().

◆ m_type

jit_type* octave::jit_value::m_type
privateinherited

Definition at line 277 of file jit-ir.h.

◆ m_use_count

size_t octave::jit_internal_list< jit_value , jit_use >::m_use_count
privateinherited

Definition at line 153 of file jit-util.h.

◆ m_use_head

jit_use * octave::jit_internal_list< jit_value , jit_use >::m_use_head
privateinherited

Definition at line 151 of file jit-util.h.

◆ m_use_tail

jit_use * octave::jit_internal_list< jit_value , jit_use >::m_use_tail
privateinherited

Definition at line 152 of file jit-util.h.

◆ m_value

template<typename T , jit_type *(*)(void) EXTRACT_T, typename PASS_T , bool QUOTE>
T octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >::m_value
private

Definition at line 554 of file jit-ir.h.


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