#include "jit-ir.h"
Public Member Functions | |
jit_value (void) | |
virtual | ~jit_value (void) |
virtual void | accept (jit_ir_walker &walker)=0 |
jit_use * | first_use (void) const |
jit_block * | first_use_block (void) |
bool | has_llvm (void) const |
bool | in_worklist (void) const |
jit_instruction * | last_use (void) const |
virtual bool | needs_release (void) const |
virtual std::ostream & | print (std::ostream &os, size_t indent=0) const =0 |
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_type * | type (void) const |
llvm::Type * | type_llvm (void) const |
const std::string & | type_name (void) const |
size_t | use_count (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_instruction * | m_last_use |
jit_type * | m_type |
size_t | m_use_count |
jit_use * | m_use_head |
jit_use * | m_use_tail |
|
pure virtual |
Implemented in octave::jit_return, octave::jit_store_argument, octave::jit_extract_argument, octave::jit_magic_end, octave::jit_error_check, octave::jit_call, octave::jit_cond_branch, octave::jit_branch, octave::jit_phi, octave::jit_assign, octave::jit_variable, octave::jit_block, octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >, and octave::jit_argument.
Referenced by octave::jit_convert_llvm::visit().
|
inlineinherited |
Definition at line 145 of file jit-util.h.
jit_block * octave::jit_value::first_use_block | ( | void | ) |
Definition at line 156 of file jit-ir.cc.
References octave::jit_internal_list< jit_value, jit_use >::first_use(), octave::jit_internal_node< LIST_T, NODE_T >::next(), octave::jit_use::user(), and octave::jit_use::user_parent().
Referenced by octave::jit_infer::release_temp().
|
inline |
Definition at line 194 of file jit-ir.h.
Referenced by octave::jit_infer::push_worklist().
|
inline |
|
inlinevirtual |
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().
|
pure virtual |
Implemented in octave::jit_return, octave::jit_store_argument, octave::jit_extract_argument, octave::jit_magic_end, octave::jit_error_check, octave::jit_call, octave::jit_cond_branch, octave::jit_branch, octave::jit_phi, octave::jit_assign, octave::jit_variable, octave::jit_block, octave::jit_const< T, EXTRACT_T, PASS_T, QUOTE >, and octave::jit_argument.
Referenced by octave::jit_print(), and octave::jit_block::print().
|
inlineprotected |
Definition at line 266 of file jit-ir.h.
Referenced by octave::jit_block::print(), octave::jit_error_check::print(), and octave::jit_magic_end::print().
|
inline |
|
virtual |
Reimplemented in octave::jit_block.
Definition at line 171 of file jit-ir.cc.
References octave::jit_internal_list< jit_value, jit_use >::first_use(), octave::jit_use::index(), octave::jit_instruction::stash_argument(), and octave::jit_use::user().
Referenced by octave::jit_phi::prune(), octave::jit_infer::release_dead_phi(), and octave::jit_block::replace_with().
|
inlinevirtual |
Reimplemented in octave::jit_magic_end, octave::jit_assign_base, octave::jit_block, and octave::jit_instruction.
Definition at line 243 of file jit-ir.h.
Referenced by octave::operator<<(), and octave::jit_store_argument::print().
|
inline |
Definition at line 199 of file jit-ir.h.
Referenced by octave::jit_infer::push_worklist().
|
inline |
|
inline |
Definition at line 259 of file jit-ir.h.
Referenced by octave::jit_convert_llvm::convert(), and octave::jit_convert_llvm::visit().
|
inline |
Definition at line 223 of file jit-ir.h.
Referenced by octave::jit_phi::infer(), octave::jit_call::infer(), and octave::jit_magic_end::infer().
|
inline |
Definition at line 253 of file jit-ir.h.
Referenced by octave::jit_phi::to_llvm(), octave::jit_terminator::to_llvm(), and octave::jit_convert_llvm::visit().
|
inline |
Definition at line 211 of file jit-ir.h.
Referenced by octave::jit_typeinfo::do_end(), octave::jit_phi::infer(), octave::jit_call::infer(), octave::jit_magic_end::infer(), octave::jit_call::needs_release(), octave::jit_return::result_type(), octave::jit_instruction::short_print(), octave::jit_infer::simplify_phi(), octave::jit_factory::track_value(), and octave::jit_convert_llvm::visit().
|
inline |
Definition at line 213 of file jit-ir.h.
Referenced by octave::jit_convert_llvm::visit().
|
inline |
|
inlineinherited |
Definition at line 147 of file jit-util.h.
|
private |
|
protected |
Definition at line 273 of file jit-ir.h.
Referenced by octave::jit_block::to_llvm().
|
privateinherited |
Definition at line 153 of file jit-util.h.
|
privateinherited |
Definition at line 151 of file jit-util.h.
|
privateinherited |
Definition at line 152 of file jit-util.h.