GNU Octave
4.0.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
|
#include "jit-typeinfo.h"
Public Member Functions | |
jit_function () | |
jit_function (llvm::Module *amodule, jit_convention::type acall_conv, const llvm::Twine &aname, jit_type *aresult, const std::vector< jit_type * > &aargs) | |
jit_function (const jit_function &fn, jit_type *aresult, const std::vector< jit_type * > &aargs) | |
jit_function (const jit_function &fn) | |
template<typename T > | |
void | add_mapping (llvm::ExecutionEngine *engine, T fn) |
llvm::Value * | argument (llvm::IRBuilderD &builder, size_t idx) const |
jit_type * | argument_type (size_t idx) const |
const std::vector< jit_type * > & | arguments (void) const |
llvm::Value * | call (llvm::IRBuilderD &builder, const std::vector< jit_value * > &in_args) const |
llvm::Value * | call (llvm::IRBuilderD &builder, const std::vector< llvm::Value * > &in_args=std::vector< llvm::Value * >()) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0, llvm::Value *arg1, llvm::Value *arg2, llvm::Value *arg3, llvm::Value *arg4) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0, llvm::Value *arg1) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0, llvm::Value *arg1, llvm::Value *arg2) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0, llvm::Value *arg1, llvm::Value *arg2, llvm::Value *arg3) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0, llvm::Value *arg1) const |
llvm::Value * | call (llvm::IRBuilderD &builder, llvm::Value *arg0, llvm::Value *arg1, llvm::Value *arg2) const |
bool | can_error (void) const |
void | do_return (llvm::IRBuilderD &builder, llvm::Value *rval=0, bool verify=true) |
void | erase (void) |
void | mark_can_error (void) |
std::string | name (void) const |
llvm::BasicBlock * | new_block (const std::string &aname="body", llvm::BasicBlock *insert_before=0) |
jit_type * | result (void) const |
bool | sret (void) const |
llvm::Function * | to_llvm (void) const |
bool | valid (void) const |
Private Member Functions | |
void | do_add_mapping (llvm::ExecutionEngine *engine, void *fn) |
Private Attributes | |
std::vector< jit_type * > | args |
jit_convention::type | call_conv |
llvm::Function * | llvm_function |
bool | mcan_error |
llvm::Module * | module |
jit_type * | mresult |
Friends | |
std::ostream & | operator<< (std::ostream &os, const jit_function &fn) |
Definition at line 222 of file jit-typeinfo.h.
jit_function::jit_function | ( | ) |
Definition at line 560 of file jit-typeinfo.cc.
jit_function::jit_function | ( | llvm::Module * | amodule, |
jit_convention::type | acall_conv, | ||
const llvm::Twine & | aname, | ||
jit_type * | aresult, | ||
const std::vector< jit_type * > & | aargs | ||
) |
Definition at line 565 of file jit-typeinfo.cc.
References args, call_conv, context, jit_convention::internal, llvm_function, module, mresult, jit_type::packed_type(), jit_type::pointer_arg(), sret(), and jit_value::ty.
jit_function::jit_function | ( | const jit_function & | fn, |
jit_type * | aresult, | ||
const std::vector< jit_type * > & | aargs | ||
) |
Definition at line 623 of file jit-typeinfo.cc.
jit_function::jit_function | ( | const jit_function & | fn | ) |
Definition at line 630 of file jit-typeinfo.cc.
|
inline |
Definition at line 245 of file jit-typeinfo.h.
Referenced by jit_paren_subsref::do_initialize(), and jit_paren_subsasgn::do_initialize().
llvm::Value * jit_function::argument | ( | llvm::IRBuilderD & | builder, |
size_t | idx | ||
) | const |
Definition at line 745 of file jit-typeinfo.cc.
References args, call_conv, llvm_function, and sret().
Referenced by jit_typeinfo::add_binary_fcmp(), jit_typeinfo::add_binary_icmp(), jit_typeinfo::add_binary_op(), jit_convert_llvm::convert_function(), jit_index_operation::create_arg_array(), jit_typeinfo::create_identity(), jit_paren_subsref::generate_matrix(), jit_paren_subsasgn::generate_matrix(), jit_function_info::jit_function_info(), jit_typeinfo::jit_typeinfo(), and jit_typeinfo::mirror_binary().
Definition at line 296 of file jit-typeinfo.h.
Referenced by jit_typeinfo::mirror_binary().
|
inline |
Definition at line 302 of file jit-typeinfo.h.
llvm::Value * jit_function::call | ( | llvm::IRBuilderD & | builder, |
const std::vector< jit_value * > & | in_args | ||
) | const |
Definition at line 660 of file jit-typeinfo.cc.
References args, to_llvm(), and valid().
Referenced by jit_paren_subsref::generate_matrix(), jit_paren_subsasgn::generate_matrix(), jit_function_info::jit_function_info(), jit_typeinfo::jit_typeinfo(), jit_typeinfo::mirror_binary(), jit_typeinfo::register_generic(), and jit_convert_llvm::visit().
llvm::Value * jit_function::call | ( | llvm::IRBuilderD & | builder, |
const std::vector< llvm::Value * > & | in_args = std::vector<llvm::Value *> () |
||
) | const |
Definition at line 675 of file jit-typeinfo.cc.
References arg(), args, call_conv, context, convert(), llvm_function, mresult, jit_type::packed_type(), jit_instruction::parent(), sret(), jit_value::ty, jit_type::unpack(), and valid().
|
inline |
Definition at line 268 of file jit-typeinfo.h.
|
inline |
Definition at line 268 of file jit-typeinfo.h.
|
inline |
Definition at line 268 of file jit-typeinfo.h.
|
inline |
Definition at line 268 of file jit-typeinfo.h.
|
inline |
Definition at line 268 of file jit-typeinfo.h.
|
inline |
Definition at line 272 of file jit-typeinfo.h.
|
inline |
Definition at line 273 of file jit-typeinfo.h.
|
inline |
Definition at line 274 of file jit-typeinfo.h.
|
inline |
Definition at line 290 of file jit-typeinfo.h.
Referenced by jit_typeinfo::mirror_binary().
|
private |
Definition at line 792 of file jit-typeinfo.cc.
References llvm_function, and valid().
void jit_function::do_return | ( | llvm::IRBuilderD & | builder, |
llvm::Value * | rval = 0 , |
||
bool | verify = true |
||
) |
Definition at line 765 of file jit-typeinfo.cc.
References call_conv, convert(), llvm_function, mresult, jit_type::pack(), and sret().
Referenced by jit_typeinfo::add_binary_fcmp(), jit_typeinfo::add_binary_icmp(), jit_typeinfo::add_binary_op(), jit_typeinfo::create_identity(), jit_paren_subsref::generate_matrix(), jit_paren_subsasgn::generate_matrix(), jit_function_info::jit_function_info(), jit_typeinfo::jit_typeinfo(), jit_typeinfo::mirror_binary(), and jit_convert_llvm::visit().
void jit_function::erase | ( | void | ) |
Definition at line 636 of file jit-typeinfo.cc.
References llvm_function.
Referenced by jit_function_info::jit_function_info().
|
inline |
Definition at line 292 of file jit-typeinfo.h.
Referenced by jit_paren_subsref::do_initialize(), jit_paren_subsasgn::do_initialize(), jit_paren_subsref::generate_matrix(), jit_paren_subsasgn::generate_matrix(), jit_typeinfo::jit_typeinfo(), and jit_typeinfo::mirror_binary().
std::string jit_function::name | ( | void | ) | const |
Definition at line 646 of file jit-typeinfo.cc.
References llvm_function.
Referenced by jit_typeinfo::mirror_binary().
llvm::BasicBlock * jit_function::new_block | ( | const std::string & | aname = "body" , |
llvm::BasicBlock * | insert_before = 0 |
||
) |
Definition at line 652 of file jit-typeinfo.cc.
References context, and llvm_function.
Referenced by jit_typeinfo::add_binary_fcmp(), jit_typeinfo::add_binary_icmp(), jit_typeinfo::add_binary_op(), jit_convert_llvm::convert_function(), jit_typeinfo::create_identity(), jit_paren_subsref::generate_matrix(), jit_paren_subsasgn::generate_matrix(), jit_function_info::jit_function_info(), jit_typeinfo::jit_typeinfo(), jit_typeinfo::mirror_binary(), and jit_typeinfo::register_intrinsic().
|
inline |
Definition at line 294 of file jit-typeinfo.h.
Referenced by jit_magic_end::infer(), jit_function_info::jit_function_info(), and jit_typeinfo::mirror_binary().
|
inline |
Definition at line 288 of file jit-typeinfo.h.
Referenced by argument(), call(), do_return(), and jit_function().
|
inline |
Definition at line 285 of file jit-typeinfo.h.
Referenced by call(), jit_convert_llvm::convert_function(), jit_function_info::jit_function_info(), and operator<<().
|
inline |
Definition at line 250 of file jit-typeinfo.h.
Referenced by call(), do_add_mapping(), jit_paren_subsasgn::do_initialize(), jit_operation::overload(), jit_typeinfo::register_generic(), and jit_convert_llvm::visit().
|
friend |
Definition at line 799 of file jit-typeinfo.cc.
|
private |
Definition at line 309 of file jit-typeinfo.h.
Referenced by argument(), call(), and jit_function().
|
private |
Definition at line 310 of file jit-typeinfo.h.
Referenced by argument(), call(), do_return(), jit_function(), and operator<<().
|
private |
Definition at line 307 of file jit-typeinfo.h.
Referenced by argument(), call(), do_add_mapping(), do_return(), erase(), jit_function(), name(), and new_block().
|
private |
Definition at line 311 of file jit-typeinfo.h.
|
private |
Definition at line 306 of file jit-typeinfo.h.
Referenced by jit_function().
|
private |
Definition at line 308 of file jit-typeinfo.h.
Referenced by call(), do_return(), and jit_function().