#include "pt-jit.h"
Public Types | |
typedef unsigned | llvm_gv_linkage |
typedef std::map< std::string, const octave_value * > | vmap |
Public Member Functions | |
jit_info (tree &tee) | |
jit_info (tree &tee, const octave_value &for_bounds) | |
jit_info (tree_simple_for_command &tee, const octave_value &for_bounds) | |
template<typename ptr_type > | |
void | add_global_mapping (const llvm::GlobalValue *gv, ptr_type p) const |
llvm::GlobalVariable * | create_global_variable (llvm::Type *type, bool is_constant, const llvm::Twine &name) const |
llvm::Function * | create_llvm_function (llvm::FunctionType *ftype, const llvm::Twine &name) const |
bool | execute (const vmap &extra_vars=vmap()) const |
void | finalizeObject (void) |
llvm::Function * | get_intrinsic_declaration (size_t id, std::vector< llvm::Type * > types) const |
uint64_t | getFunctionAddress (const std::string &name) const |
bool | match (const vmap &extra_vars=vmap()) const |
void | optimize (llvm::Function *fn) const |
Private Types | |
typedef void(* | jited_function) (octave_base_value **) |
typedef jit_convert::type_bound | type_bound |
typedef jit_convert::type_bound_vector | type_bound_vector |
Private Member Functions | |
void | compile (tree &tee, jit_type *for_bounds=0) |
void | do_add_global_mapping (const llvm::GlobalValue *gv, void *p) const |
octave_value | find (const vmap &extra_vars, const std::string &vname) const |
Private Attributes | |
std::vector< std::pair< std::string, bool > > | m_arguments |
type_bound_vector | m_bounds |
llvm::ExecutionEngine * | m_engine |
jited_function | m_function |
std::string | m_llvm_function_name |
llvm::Module * | m_module |
|
private |
|
inherited |
|
private |
|
private |
typedef std::map<std::string, const octave_value *> octave::jit_info::vmap |
octave::jit_info::jit_info | ( | tree & | tee | ) |
octave::jit_info::jit_info | ( | tree & | tee, |
const octave_value & | for_bounds | ||
) |
Definition at line 2669 of file pt-jit.cc.
References compile(), and octave::jit_typeinfo::type_of().
octave::jit_info::jit_info | ( | tree_simple_for_command & | tee, |
const octave_value & | for_bounds | ||
) |
Definition at line 2676 of file pt-jit.cc.
References compile(), and octave::jit_typeinfo::type_of().
|
inlineinherited |
Definition at line 557 of file pt-jit.h.
Referenced by octave::jit_typeinfo::jit_typeinfo(), and octave::jit_typeinfo::create_external().
Definition at line 2743 of file pt-jit.cc.
References octave::jit_factory::constants(), octave::jit_convert_llvm::convert_loop(), octave::jit_module::finalizeObject(), octave::jit_convert_llvm::get_arguments(), octave::jit_convert::get_blocks(), octave::jit_infer::get_blocks(), octave::jit_convert::get_bounds(), octave::jit_convert::get_factory(), octave::jit_convert::get_variable_map(), octave::jit_module::getFunctionAddress(), octave::jit_infer::infer(), octave::jit_fail_exception::known(), octave::jit_block_list::label(), m_arguments, m_bounds, m_function, m_llvm_function_name, octave_stdout, octave::jit_module::optimize(), octave::jit_block_list::print(), octave::tree::str_print_code(), Vdebug_jit, and Vjit_failcnt.
Referenced by jit_info().
|
inherited |
Definition at line 2381 of file pt-jit.cc.
References octave::jit_module::m_module, and name.
Referenced by octave::jit_typeinfo::jit_typeinfo().
|
inherited |
Definition at line 2359 of file pt-jit.cc.
References octave::jit_module::m_module, and name.
Referenced by octave::jit_function::jit_function(), and octave::jit_convert_llvm::convert_loop().
|
privateinherited |
Definition at line 2390 of file pt-jit.cc.
References octave::jit_module::m_engine.
Definition at line 2685 of file pt-jit.cc.
References octave::__require_current_scope__(), find(), octave_base_value::grab(), octave_value::internal_rep(), m_arguments, m_function, and name.
Referenced by octave::tree_jit::do_execute().
|
inherited |
Definition at line 2475 of file pt-jit.cc.
References octave::jit_module::m_engine.
Referenced by octave::jit_function_info::jit_function_info(), octave::jit_typeinfo::jit_typeinfo(), and compile().
|
private |
Definition at line 2823 of file pt-jit.cc.
References octave::__require_current_scope__().
|
inherited |
Definition at line 2372 of file pt-jit.cc.
References octave::jit_module::m_module.
|
inherited |
Definition at line 2398 of file pt-jit.cc.
References octave::jit_module::m_engine, and name.
Referenced by octave::jit_function_info::jit_function_info(), and compile().
Definition at line 2723 of file pt-jit.cc.
References find(), m_bounds, m_function, and octave::jit_typeinfo::type_of().
Referenced by octave::tree_jit::do_execute().
|
inherited |
Definition at line 2404 of file pt-jit.cc.
References octave::jit_module::m_module, and Vdebug_jit.
Referenced by octave::jit_function_info::jit_function_info(), and compile().
|
private |
|
private |
|
privateinherited |
Definition at line 577 of file pt-jit.h.
Referenced by octave::jit_module::jit_module(), octave::jit_module::~jit_module(), octave::jit_module::do_add_global_mapping(), octave::jit_module::finalizeObject(), and octave::jit_module::getFunctionAddress().
|
private |
|
private |
|
privateinherited |
Definition at line 576 of file pt-jit.h.
Referenced by octave::jit_module::jit_module(), octave::jit_module::create_global_variable(), octave::jit_module::create_llvm_function(), octave::jit_module::get_intrinsic_declaration(), and octave::jit_module::optimize().