GNU Octave
3.8.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, OCT_MAKE_DECL_LIST(llvm::Value *, arg, 1)) const |
llvm::Value * | call (llvm::IRBuilderD &builder, OCT_MAKE_DECL_LIST(llvm::Value *, arg, 2)) const |
llvm::Value * | call (llvm::IRBuilderD &builder, OCT_MAKE_DECL_LIST(llvm::Value *, arg, 3)) const |
llvm::Value * | call (llvm::IRBuilderD &builder, OCT_MAKE_DECL_LIST(llvm::Value *, arg, 4)) const |
llvm::Value * | call (llvm::IRBuilderD &builder, OCT_MAKE_DECL_LIST(llvm::Value *, arg, 5)) const |
llvm::Value * | call (llvm::IRBuilderD &builder, OCT_MAKE_DECL_LIST(jit_value *, arg, 1)) const |
llvm::Value * | call (llvm::IRBuilderD &builder, OCT_MAKE_DECL_LIST(jit_value *, arg, 2)) const |
llvm::Value * | call (llvm::IRBuilderD &builder, OCT_MAKE_DECL_LIST(jit_value *, arg, 3)) 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 555 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 560 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 618 of file jit-typeinfo.cc.
jit_function::jit_function | ( | const jit_function & | fn | ) |
Definition at line 625 of file jit-typeinfo.cc.
|
inline |
Definition at line 245 of file jit-typeinfo.h.
Referenced by jit_typeinfo::create_external(), 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 740 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 302 of file jit-typeinfo.h.
Referenced by jit_typeinfo::mirror_binary().
Definition at line 308 of file jit-typeinfo.h.
Referenced by jit_operation::add_overload().
llvm::Value * jit_function::call | ( | llvm::IRBuilderD & | builder, |
const std::vector< jit_value * > & | in_args | ||
) | const |
Definition at line 655 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 670 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 269 of file jit-typeinfo.h.
|
inline |
Definition at line 270 of file jit-typeinfo.h.
|
inline |
Definition at line 271 of file jit-typeinfo.h.
|
inline |
Definition at line 272 of file jit-typeinfo.h.
|
inline |
Definition at line 278 of file jit-typeinfo.h.
|
inline |
Definition at line 279 of file jit-typeinfo.h.
|
inline |
Definition at line 280 of file jit-typeinfo.h.
Definition at line 296 of file jit-typeinfo.h.
Referenced by jit_typeinfo::mirror_binary().
Definition at line 787 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 760 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().
Definition at line 631 of file jit-typeinfo.cc.
References llvm_function.
Referenced by jit_function_info::jit_function_info().
Definition at line 298 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 641 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 647 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().
Definition at line 300 of file jit-typeinfo.h.
Referenced by jit_magic_end::infer(), jit_call::jit_call(), jit_function_info::jit_function_info(), jit_typeinfo::mirror_binary(), and jit_operation::result().
Definition at line 294 of file jit-typeinfo.h.
Referenced by argument(), call(), do_return(), and jit_function().
|
inline |
Definition at line 291 of file jit-typeinfo.h.
Referenced by call(), jit_convert_llvm::convert_function(), jit_function_info::jit_function_info(), and operator<<().
Definition at line 250 of file jit-typeinfo.h.
Referenced by call(), do_add_mapping(), jit_paren_subsasgn::do_initialize(), jit_call::jit_call(), jit_operation::overload(), jit_typeinfo::register_generic(), and jit_convert_llvm::visit().
|
friend |
Definition at line 794 of file jit-typeinfo.cc.
|
private |
Definition at line 315 of file jit-typeinfo.h.
Referenced by argument(), call(), and jit_function().
|
private |
Definition at line 316 of file jit-typeinfo.h.
Referenced by argument(), call(), do_return(), jit_function(), and operator<<().
|
private |
Definition at line 313 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 317 of file jit-typeinfo.h.
|
private |
Definition at line 312 of file jit-typeinfo.h.
Referenced by jit_function().
|
private |
Definition at line 314 of file jit-typeinfo.h.
Referenced by call(), do_return(), and jit_function().