GNU Octave
3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
|
#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 *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_ty) |
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 * | llvm_value |
Private Attributes | |
bool | min_worklist |
jit_instruction * | mlast_use |
jit_type * | ty |
|
pure virtual |
Implemented in jit_return, jit_store_argument, jit_extract_argument, jit_magic_end, jit_error_check, jit_call, jit_cond_branch, jit_branch, jit_phi, jit_assign, jit_variable, jit_block, jit_const< T, EXTRACT_T, PASS_T, QUOTE >, and jit_argument.
Referenced by jit_convert_llvm::visit().
|
inlineinherited |
Reimplemented in jit_block.
Definition at line 113 of file jit-util.h.
Referenced by jit_block::first_use(), first_use_block(), jit_call::needs_release(), replace_with(), and jit_variable::use_blocks().
Definition at line 153 of file jit-ir.cc.
References jit_internal_list< jit_value, jit_use >::first_use(), jit_internal_node< LIST_T, NODE_T >::next(), jit_use::user(), and jit_use::user_parent().
Referenced by jit_infer::release_temp().
Definition at line 250 of file jit-ir.h.
References llvm_value.
Definition at line 196 of file jit-ir.h.
References min_worklist.
Referenced by jit_infer::push_worklist().
|
inline |
Reimplemented in jit_call.
Definition at line 241 of file jit-ir.h.
Referenced by jit_infer::release_dead_phi(), and jit_infer::release_temp().
|
pure virtual |
Implemented in jit_return, jit_store_argument, jit_extract_argument, jit_magic_end, jit_error_check, jit_call, jit_cond_branch, jit_branch, jit_phi, jit_assign, jit_variable, jit_block, jit_const< T, EXTRACT_T, PASS_T, QUOTE >, and jit_argument.
Referenced by jit_print(), jit_block::print(), print_string(), and short_print().
|
inlineprotected |
Definition at line 267 of file jit-ir.h.
Referenced by jit_argument::print(), jit_const< T, EXTRACT_T, PASS_T, QUOTE >::print(), jit_block::print(), jit_variable::print(), jit_assign::print(), jit_phi::print(), jit_branch::print(), jit_cond_branch::print(), jit_call::print(), jit_error_check::print(), jit_magic_end::print(), jit_extract_argument::print(), jit_store_argument::print(), and jit_return::print().
|
inline |
Reimplemented in jit_block.
Definition at line 168 of file jit-ir.cc.
References jit_internal_list< jit_value, jit_use >::first_use(), jit_use::index(), jit_instruction::stash_argument(), and jit_use::user().
Referenced by jit_phi::prune(), and jit_infer::release_dead_phi().
|
inlinevirtual |
Reimplemented in jit_magic_end, jit_assign_base, jit_block, and jit_instruction.
Definition at line 245 of file jit-ir.h.
References print().
Referenced by operator<<(), jit_store_argument::print(), and jit_instruction::print_argument().
Definition at line 201 of file jit-ir.h.
References min_worklist.
Referenced by jit_infer::infer(), and jit_infer::push_worklist().
|
inline |
|
inline |
Definition at line 261 of file jit-ir.h.
References llvm_value.
Referenced by jit_convert_llvm::convert(), jit_argument::jit_argument(), and jit_convert_llvm::visit().
Definition at line 225 of file jit-ir.h.
References ty.
Referenced by jit_assign::infer(), jit_phi::infer(), jit_call::infer(), jit_magic_end::infer(), jit_argument::jit_argument(), jit_call::jit_call(), jit_const< T, EXTRACT_T, PASS_T, QUOTE >::jit_const(), and jit_extract_argument::jit_extract_argument().
|
inline |
Reimplemented in jit_terminator, jit_phi, and jit_block.
Definition at line 255 of file jit-ir.h.
References llvm_value.
Referenced by jit_instruction::argument_llvm(), and jit_convert_llvm::visit().
Definition at line 213 of file jit-ir.h.
References ty.
Referenced by jit_instruction::argument_type(), jit_typeinfo::do_end(), jit_phi::infer(), jit_call::infer(), jit_magic_end::infer(), jit_call::needs_release(), jit_return::result_type(), jit_instruction::short_print(), jit_infer::simplify_phi(), jit_factory::track_value(), and jit_convert_llvm::visit().
|
inline |
Definition at line 215 of file jit-ir.h.
References jit_type::to_llvm(), and ty.
Referenced by jit_convert_llvm::visit().
|
inline |
Definition at line 220 of file jit-ir.h.
References jit_type::name(), and ty.
|
inlineinherited |
Reimplemented in jit_block.
Definition at line 115 of file jit-util.h.
Referenced by jit_call::infer(), jit_call::print(), and jit_block::use_count().
|
protected |
Definition at line 274 of file jit-ir.h.
Referenced by has_llvm(), stash_llvm(), to_llvm(), and jit_block::to_llvm().
|
private |
Definition at line 278 of file jit-ir.h.
Referenced by in_worklist(), and stash_in_worklist().
|
private |
Definition at line 277 of file jit-ir.h.
Referenced by last_use(), jit_variable::last_use(), jit_variable::push(), stash_last_use(), and jit_variable::stash_last_use().
|
private |
Definition at line 276 of file jit-ir.h.
Referenced by jit_typeinfo::add_binary_fcmp(), jit_typeinfo::add_binary_icmp(), jit_typeinfo::add_binary_op(), jit_typeinfo::add_print(), jit_function::call(), jit_function::jit_function(), jit_type::set_packed_type(), stash_type(), type(), type_llvm(), and type_name().