#include "pt-jit.h"
Public Member Functions | |
~tree_jit (void) | |
Static Public Member Functions | |
static jit::EngineOwner | create_new_engine (jit::ModuleOwner module_owner) |
static bool | execute (octave_user_function &fcn, const octave_value_list &args, octave_value_list &retval) |
static bool | execute (tree_simple_for_command &cmd, const octave_value &bounds) |
static bool | execute (tree_while_command &cmd) |
static std::string | generate_unique_forloop_name (void) |
static std::string | generate_unique_function_name (void) |
static std::string | generate_unique_module_name (void) |
static const llvm::TargetMachine * | get_target_machine (void) |
static void * | getPointerToNamedFunction (const std::string &name) |
static uint64_t | getSymbolAddress (const std::string &name) |
static jit::ModuleOwner | open_new_module (const std::string &module_name=generate_unique_module_name()) |
static void | register_jit_module (jit_module *jm) |
static void | unregister_jit_module (jit_module *jm) |
Static Public Attributes | |
static llvm::LLVMContext | llvm_context |
Private Member Functions | |
tree_jit (void) | |
void | do_dump_all_modules (void) const |
bool | do_execute (octave_user_function &fcn, const octave_value_list &args, octave_value_list &retval) |
bool | do_execute (tree_simple_for_command &cmd, const octave_value &bounds) |
bool | do_execute (tree_while_command &cmd) |
void * | do_getPointerToNamedFunction (const std::string &Name) const |
uint64_t | do_getSymbolAddress (const std::string &name) const |
bool | do_initialize (void) |
jit::ModuleOwner | do_open_new_module (const std::string &module_name) const |
void | do_register_jit_module (jit_module *jm) |
void | do_unregister_jit_module (jit_module *jm) |
bool | enabled (void) |
size_t | trip_count (const octave_value &bounds) const |
Static Private Member Functions | |
static tree_jit & | instance (void) |
Private Attributes | |
std::list< jit_module * > | jm_list |
llvm::TargetMachine * | target_machine |
Static Private Attributes | |
static bool | initialized = false |
static int | next_forloop_number = 0 |
static int | next_function_number = 0 |
static int | next_module_number = 0 |
octave::tree_jit::~tree_jit | ( | void | ) |
Definition at line 2113 of file pt-jit.cc.
References target_machine.
|
static |
Definition at line 2131 of file pt-jit.cc.
References error().
Referenced by octave::jit_module::jit_module().
|
private |
|
private |
Definition at line 2282 of file pt-jit.cc.
References enabled(), octave::jit_function_info::execute(), octave_user_function::get_info(), initialized, octave::jit_function_info::match(), retval, and octave_user_function::stash_info().
|
private |
Definition at line 2237 of file pt-jit.cc.
References enabled(), octave::jit_info::execute(), octave::tree_simple_for_command::get_info(), initialized, octave::jit_info::match(), octave::tree_simple_for_command::stash_info(), trip_count(), and Vjit_startcnt.
Referenced by execute().
|
private |
Definition at line 2265 of file pt-jit.cc.
References enabled(), octave::jit_info::execute(), octave::tree_while_command::get_info(), initialized, octave::jit_info::match(), and octave::tree_while_command::stash_info().
|
private |
Definition at line 2163 of file pt-jit.cc.
Referenced by getPointerToNamedFunction().
|
private |
Definition at line 2179 of file pt-jit.cc.
Referenced by getSymbolAddress().
|
private |
Definition at line 2195 of file pt-jit.cc.
References initialized, and target_machine.
Referenced by instance().
|
private |
Definition at line 2222 of file pt-jit.cc.
References octave::context, initialized, m, and target_machine.
Referenced by open_new_module().
|
private |
|
private |
Definition at line 2157 of file pt-jit.cc.
References jm_list.
Referenced by unregister_jit_module().
|
private |
Definition at line 2301 of file pt-jit.cc.
References octave::__get_bp_table__(), octave::bp_table::have_breakpoints(), octave::Vdebug_on_interrupt, and Vjit_enable.
Referenced by do_execute().
|
inlinestatic |
Definition at line 493 of file pt-jit.h.
References do_execute(), and retval.
|
inlinestatic |
Definition at line 486 of file pt-jit.h.
References do_execute().
Referenced by octave::tree_evaluator::execute_user_function(), octave::tree_evaluator::visit_do_until_command(), octave::tree_evaluator::visit_simple_for_command(), and octave::tree_evaluator::visit_while_command().
|
inlinestatic |
Definition at line 490 of file pt-jit.h.
References do_execute().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 395 of file pt-jit.h.
References target_machine.
|
inlinestatic |
Definition at line 439 of file pt-jit.h.
References do_getPointerToNamedFunction(), and name.
Referenced by octave::jit_memory_manager::getPointerToNamedFunction().
|
inlinestatic |
Definition at line 442 of file pt-jit.h.
References do_getSymbolAddress(), and name.
Referenced by octave::jit_memory_manager::getSymbolAddress().
|
staticprivate |
Definition at line 2119 of file pt-jit.cc.
References do_initialize(), and initialized.
Referenced by open_new_module().
|
static |
Definition at line 2216 of file pt-jit.cc.
References do_open_new_module(), and instance().
Referenced by octave::jit_module::jit_module().
|
inlinestatic |
Definition at line 421 of file pt-jit.h.
References do_register_jit_module().
Referenced by octave::jit_module::jit_module().
|
private |
Definition at line 2313 of file pt-jit.cc.
References octave_value::is_range(), Range::numel(), and octave_value::range_value().
Referenced by do_execute().
|
inlinestatic |
Definition at line 424 of file pt-jit.h.
References do_unregister_jit_module().
Referenced by octave::jit_module::~jit_module().
|
staticprivate |
Definition at line 382 of file pt-jit.h.
Referenced by do_execute(), do_initialize(), do_open_new_module(), and instance().
|
private |
Definition at line 430 of file pt-jit.h.
Referenced by do_getPointerToNamedFunction(), do_getSymbolAddress(), do_register_jit_module(), and do_unregister_jit_module().
|
staticprivate |
|
staticprivate |
|
private |
Definition at line 400 of file pt-jit.h.
Referenced by ~tree_jit(), do_initialize(), do_open_new_module(), and get_target_machine().