GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
jit_typeinfo Class Reference

#include "jit-typeinfo.h"

Collaboration diagram for jit_typeinfo:
Collaboration graph
[legend]

Static Public Member Functions

static const jit_operationbinary_op (int op)
 
static const jit_operationcast (jit_type *result)
 
static const jit_functioncast (jit_type *to, jit_type *from)
 
static llvm::Value * create_complex (llvm::Value *real, llvm::Value *imag)
 
static const jit_operationcreate_undef (void)
 
static const jit_operationdestroy (void)
 
static const jit_operationend (void)
 
static const jit_functionend (jit_value *value, jit_value *index, jit_value *count)
 
static const jit_operationfor_check (void)
 
static const jit_operationfor_index (void)
 
static const jit_operationfor_init (void)
 
static jit_typeget_any (void)
 
static jit_typeget_any_ptr (void)
 
static jit_typeget_bool (void)
 
static jit_typeget_complex (void)
 
static const jit_functionget_grab (jit_type *type)
 
static jit_typeget_index (void)
 
static llvm::Type * get_index_llvm (void)
 
static jit_typeget_matrix (void)
 
static jit_typeget_range (void)
 
static const jit_functionget_release (jit_type *type)
 
static jit_typeget_scalar (void)
 
static llvm::Type * get_scalar_llvm (void)
 
static jit_typeget_scalar_ptr (void)
 
static jit_typeget_string (void)
 
static const jit_operationgrab (void)
 
static void initialize (llvm::Module *m, llvm::ExecutionEngine *e)
 
static llvm::Value * insert_error_check (llvm::IRBuilderD &bld)
 
static llvm::Value * insert_interrupt_check (llvm::IRBuilderD &bld)
 
static jit_typejoin (jit_type *lhs, jit_type *rhs)
 
static const jit_operationlogically_true (void)
 
static const jit_operationmake_range (void)
 
static const jit_operationparen_subsasgn (void)
 
static const jit_operationparen_subsref (void)
 
static const jit_operationprint_value (void)
 
static const jit_operationrelease (void)
 
static jit_typetype_of (const octave_value &ov)
 
static const jit_operationunary_op (int op)
 

Private Member Functions

 jit_typeinfo (llvm::Module *m, llvm::ExecutionEngine *e)
 
void add_binary_fcmp (jit_type *ty, int op, int llvm_op)
 
void add_binary_icmp (jit_type *ty, int op, int llvm_op)
 
void add_binary_op (jit_type *ty, int op, int llvm_op)
 
void add_builtin (const std::string &name)
 
void add_print (jit_type *ty, void *fptr)
 
llvm::Value * complex_imag (llvm::Value *cx)
 
llvm::Value * complex_imag (llvm::Value *cx, llvm::Value *imag)
 
llvm::Value * complex_new (llvm::Value *real, llvm::Value *imag)
 
llvm::Value * complex_real (llvm::Value *cx)
 
llvm::Value * complex_real (llvm::Value *cx, llvm::Value *real)
 
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, const std::vector< jit_type * > &args=std::vector< jit_type * >())
 
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, jit_type *arg0)
 
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, jit_type *arg0, jit_type *arg1)
 
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, jit_type *arg0, jit_type *arg1, jit_type *arg2)
 
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, jit_type *arg0, jit_type *arg1, jit_type *arg2, jit_type *arg3)
 
jit_function create_function (jit_convention::type cc, const llvm::Twine &name, jit_type *ret, const std::vector< jit_type * > &args=std::vector< jit_type * >())
 
jit_function create_identity (jit_type *type)
 
void create_int (size_t nbits)
 
jit_function create_internal (const llvm::Twine &name, jit_type *ret, const std::vector< jit_type * > &args=std::vector< jit_type * >())
 
jit_function create_internal (const llvm::Twine &name, jit_type *ret, jit_type *arg0)
 
jit_function create_internal (const llvm::Twine &name, jit_type *ret, jit_type *arg0, jit_type *arg1)
 
jit_function create_internal (const llvm::Twine &name, jit_type *ret, jit_type *arg0, jit_type *arg1, jit_type *arg2)
 
jit_function create_internal (const llvm::Twine &name, jit_type *ret, jit_type *arg0, jit_type *arg1, jit_type *arg2, jit_type *arg3)
 
const jit_operationdo_binary_op (int op) const
 
const jit_operationdo_cast (jit_type *to)
 
const jit_functiondo_cast (jit_type *to, jit_type *from)
 
jit_typedo_difference (jit_type *lhs, jit_type *)
 
const jit_functiondo_end (jit_value *value, jit_value *index, jit_value *count)
 
llvm::Value * do_insert_error_check (llvm::IRBuilderD &bld)
 
llvm::Value * do_insert_interrupt_check (llvm::IRBuilderD &bld)
 
jit_typedo_join (jit_type *lhs, jit_type *rhs)
 
jit_typedo_type_of (const octave_value &ov) const
 
const jit_operationdo_unary_op (int op) const
 
octave_builtinfind_builtin (const std::string &name)
 
jit_typeintN (size_t nbits) const
 
jit_function mirror_binary (const jit_function &fn)
 
jit_typenew_type (const std::string &name, jit_type *parent, llvm::Type *llvm_type, bool skip_paren=false)
 
void register_generic (const std::string &name, jit_type *result, jit_type *arg0)
 
void register_generic (const std::string &name, jit_type *result, const std::vector< jit_type * > &args)
 
void register_intrinsic (const std::string &name, size_t id, jit_type *result, jit_type *arg0)
 
void register_intrinsic (const std::string &name, size_t id, jit_type *result, const std::vector< jit_type * > &args)
 
llvm::Function * wrap_complex (llvm::Function *wrap)
 

Static Private Member Functions

static llvm::Value * pack_complex (llvm::IRBuilderD &bld, llvm::Value *cplx)
 
static llvm::Value * unpack_complex (llvm::IRBuilderD &bld, llvm::Value *result)
 

Private Attributes

jit_typeany
 
jit_function any_call
 
jit_typeany_ptr
 
std::vector< jit_operationbinary_ops
 
jit_typeboolean
 
llvm::IRBuilderDbuilder
 
std::map< std::string, jit_type * > builtins
 
std::vector< jit_operationcasts
 
jit_typecomplex
 
llvm::StructType * complex_ret
 
jit_operation create_undef_fn
 
jit_operation destroy_fn
 
jit_operation end1_fn
 
jit_operation end_fn
 
llvm::ExecutionEngine * engine
 
jit_operation for_check_fn
 
jit_operation for_index_fn
 
jit_operation for_init_fn
 
jit_operation grab_fn
 
std::vector< jit_type * > id_to_type
 
std::vector< jit_functionidentities
 
jit_typeindex
 
std::map< size_t, jit_type * > ints
 
llvm::GlobalVariable * lerror_state
 
llvm::GlobalVariable * loctave_interrupt_state
 
jit_operation logically_true_fn
 
jit_operation make_range_fn
 
jit_typematrix
 
llvm::Module * module
 
int next_id
 
jit_paren_subsasgn paren_subsasgn_fn
 
jit_paren_subsref paren_subsref_fn
 
jit_operation print_fn
 
jit_typerange
 
jit_operation release_fn
 
jit_typescalar
 
jit_typescalar_ptr
 
llvm::Type * sig_atomic_type
 
jit_typestring
 
std::vector< jit_operationunary_ops
 
jit_typeunknown_function
 

Static Private Attributes

static jit_typeinfoinstance = 0
 

Detailed Description

Definition at line 435 of file jit-typeinfo.h.

Constructor & Destructor Documentation

jit_typeinfo::jit_typeinfo ( llvm::Module *  m,
llvm::ExecutionEngine *  e 
)
private

Definition at line 1042 of file jit-typeinfo.cc.

References add_binary_fcmp(), add_binary_op(), add_builtin(), jit_operation::add_overload(), add_print(), any, any_call, any_ptr, jit_function::argument(), octave_value::binary_op_as_string(), binary_ops, builder, builtins, jit_function::call(), casts, complex, complex_imag(), complex_new(), complex_real(), complex_ret, context, create_external(), create_identity(), create_int(), create_internal(), create_undef_fn, destroy_fn, jit_function::do_return(), done, end1_fn, end_fn, engine, octave::err_nan_to_logical_conversion(), error_state, jit_convention::external, for_check_fn, for_index_fn, for_init_fn, get_release(), grab_fn, identities, imag(), index, jit_index_operation::initialize(), instance, intN(), JIT_FN, lerror_state, loctave_interrupt_state, logically_true_fn, make_range_fn, jit_function::mark_can_error(), jit_type::mark_pointer_arg(), jit_type::mark_sret(), matrix, mirror_binary(), module, jit_function::new_block(), new_type(), next_id, octave_value::num_binary_ops, octave_value::num_unary_ops, octave_interrupt_state, octave_jit_binary_any_any(), octave_jit_call(), octave_jit_cast_any_complex(), octave_jit_cast_any_matrix(), octave_jit_cast_any_range(), octave_jit_cast_any_scalar(), octave_jit_cast_complex_any(), octave_jit_cast_matrix_any(), octave_jit_cast_range_any(), octave_jit_cast_scalar_any(), octave_jit_complex_div(), octave_jit_complex_mul(), octave_jit_compute_nelem(), octave_jit_create_undef(), octave_jit_end_matrix(), octave_jit_gindex_range(), octave_jit_ginvalid_index(), octave_jit_grab_any(), octave_jit_grab_matrix(), octave_jit_paren_subsasgn_impl(), octave_jit_paren_subsasgn_matrix_range(), octave_jit_pow_complex_complex(), octave_jit_pow_complex_scalar(), octave_jit_pow_scalar_complex(), octave_jit_pow_scalar_scalar(), octave_jit_print_any(), octave_jit_print_scalar(), octave_jit_release_any(), octave_jit_release_matrix(), octave_value::op_add, octave_value::op_decr, octave_value::op_div, octave_value::op_el_and, octave_value::op_el_div, octave_value::op_el_ldiv, octave_value::op_el_mul, octave_value::op_el_or, octave_value::op_el_pow, octave_value::op_eq, octave_value::op_ge, octave_value::op_gt, octave_value::op_hermitian, octave_value::op_incr, octave_value::op_ldiv, octave_value::op_le, octave_value::op_lt, octave_value::op_mul, octave_value::op_ne, octave_value::op_pow, octave_value::op_sub, octave_value::op_transpose, octave_value::op_uminus, octave_value::op_uplus, pack_complex(), paren_subsasgn_fn, paren_subsref_fn, print_fn, range, real(), register_generic(), register_intrinsic(), release_fn, scalar, scalar_ptr, jit_type::set_pack(), jit_type::set_packed_type(), jit_type::set_unpack(), sig_atomic_type, jit_operation::stash_name(), string, jit_type::to_llvm(), jit_type::type_id(), octave_value::unary_op_as_string(), unary_ops, unknown_function, unpack_complex(), val, value(), warn_divide_by_zero(), and zero.

Member Function Documentation

void jit_typeinfo::add_binary_fcmp ( jit_type ty,
int  op,
int  llvm_op 
)
private
void jit_typeinfo::add_binary_icmp ( jit_type ty,
int  op,
int  llvm_op 
)
private
void jit_typeinfo::add_binary_op ( jit_type ty,
int  op,
int  llvm_op 
)
private
void jit_typeinfo::add_builtin ( const std::string name)
private
void jit_typeinfo::add_print ( jit_type ty,
void *  fptr 
)
private
static const jit_operation& jit_typeinfo::binary_op ( int  op)
inlinestatic
static const jit_operation& jit_typeinfo::cast ( jit_type result)
inlinestatic
static const jit_function& jit_typeinfo::cast ( jit_type to,
jit_type from 
)
inlinestatic

Definition at line 555 of file jit-typeinfo.h.

llvm::Value * jit_typeinfo::complex_imag ( llvm::Value *  cx)
private

Definition at line 2167 of file jit-typeinfo.cc.

References builder.

Referenced by complex_new(), and jit_typeinfo().

llvm::Value * jit_typeinfo::complex_imag ( llvm::Value *  cx,
llvm::Value *  imag 
)
private

Definition at line 2173 of file jit-typeinfo.cc.

References builder.

llvm::Value * jit_typeinfo::complex_new ( llvm::Value *  real,
llvm::Value *  imag 
)
private

Definition at line 2179 of file jit-typeinfo.cc.

References complex, complex_imag(), complex_real(), and jit_type::to_llvm().

Referenced by jit_typeinfo().

llvm::Value * jit_typeinfo::complex_real ( llvm::Value *  cx)
private

Definition at line 2155 of file jit-typeinfo.cc.

References builder.

Referenced by complex_new(), and jit_typeinfo().

llvm::Value * jit_typeinfo::complex_real ( llvm::Value *  cx,
llvm::Value *  real 
)
private

Definition at line 2161 of file jit-typeinfo.cc.

References builder.

static llvm::Value* jit_typeinfo::create_complex ( llvm::Value *  real,
llvm::Value *  imag 
)
inlinestatic

Definition at line 586 of file jit-typeinfo.h.

template<typename T >
jit_function jit_typeinfo::create_external ( llvm::ExecutionEngine *  ee,
fn,
const llvm::Twine &  name,
jit_type ret,
const std::vector< jit_type * > &  args = std::vector<jit_type *> () 
)
inlineprivate

Definition at line 679 of file jit-typeinfo.h.

Referenced by add_print(), and jit_typeinfo().

template<typename T >
jit_function jit_typeinfo::create_external ( llvm::ExecutionEngine *  ee,
fn,
const llvm::Twine &  name,
jit_type ret,
jit_type arg0 
)
inlineprivate

Definition at line 697 of file jit-typeinfo.h.

template<typename T >
jit_function jit_typeinfo::create_external ( llvm::ExecutionEngine *  ee,
fn,
const llvm::Twine &  name,
jit_type ret,
jit_type arg0,
jit_type arg1 
)
inlineprivate

Definition at line 698 of file jit-typeinfo.h.

template<typename T >
jit_function jit_typeinfo::create_external ( llvm::ExecutionEngine *  ee,
fn,
const llvm::Twine &  name,
jit_type ret,
jit_type arg0,
jit_type arg1,
jit_type arg2 
)
inlineprivate

Definition at line 699 of file jit-typeinfo.h.

template<typename T >
jit_function jit_typeinfo::create_external ( llvm::ExecutionEngine *  ee,
fn,
const llvm::Twine &  name,
jit_type ret,
jit_type arg0,
jit_type arg1,
jit_type arg2,
jit_type arg3 
)
inlineprivate

Definition at line 700 of file jit-typeinfo.h.

jit_function jit_typeinfo::create_function ( jit_convention::type  cc,
const llvm::Twine &  name,
jit_type ret,
const std::vector< jit_type * > &  args = std::vector<jit_type *> () 
)
private

Definition at line 1957 of file jit-typeinfo.cc.

References module, and result.

jit_function jit_typeinfo::create_identity ( jit_type type)
private
void jit_typeinfo::create_int ( size_t  nbits)
private

Definition at line 2187 of file jit-typeinfo.cc.

References any, context, ints, and new_type().

Referenced by jit_typeinfo().

jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
const std::vector< jit_type * > &  args = std::vector<jit_type *> () 
)
inlineprivate
jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
jit_type arg0 
)
inlineprivate

Definition at line 725 of file jit-typeinfo.h.

jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
jit_type arg0,
jit_type arg1 
)
inlineprivate

Definition at line 726 of file jit-typeinfo.h.

jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
jit_type arg0,
jit_type arg1,
jit_type arg2 
)
inlineprivate

Definition at line 727 of file jit-typeinfo.h.

jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
jit_type arg0,
jit_type arg1,
jit_type arg2,
jit_type arg3 
)
inlineprivate

Definition at line 728 of file jit-typeinfo.h.

static const jit_operation& jit_typeinfo::create_undef ( void  )
inlinestatic

Definition at line 581 of file jit-typeinfo.h.

Referenced by jit_convert::create_variable().

static const jit_operation& jit_typeinfo::destroy ( void  )
inlinestatic

Definition at line 505 of file jit-typeinfo.h.

Referenced by jit_convert::jit_convert().

const jit_operation& jit_typeinfo::do_binary_op ( int  op) const
inlineprivate

Definition at line 633 of file jit-typeinfo.h.

const jit_operation& jit_typeinfo::do_cast ( jit_type to)
inlineprivate

Definition at line 645 of file jit-typeinfo.h.

const jit_function& jit_typeinfo::do_cast ( jit_type to,
jit_type from 
)
inlineprivate

Definition at line 657 of file jit-typeinfo.h.

jit_type* jit_typeinfo::do_difference ( jit_type lhs,
jit_type  
)
inlineprivate

Definition at line 625 of file jit-typeinfo.h.

const jit_function & jit_typeinfo::do_end ( jit_value value,
jit_value index,
jit_value count 
)
private
llvm::Value * jit_typeinfo::do_insert_error_check ( llvm::IRBuilderD bld)
private

Definition at line 1988 of file jit-typeinfo.cc.

References lerror_state.

llvm::Value * jit_typeinfo::do_insert_interrupt_check ( llvm::IRBuilderD bld)
private

Definition at line 1994 of file jit-typeinfo.cc.

References loctave_interrupt_state, and val.

jit_type* jit_typeinfo::do_join ( jit_type lhs,
jit_type rhs 
)
inlineprivate

Definition at line 594 of file jit-typeinfo.h.

jit_type * jit_typeinfo::do_type_of ( const octave_value ov) const
private
const jit_operation& jit_typeinfo::do_unary_op ( int  op) const
inlineprivate

Definition at line 639 of file jit-typeinfo.h.

static const jit_operation& jit_typeinfo::end ( void  )
inlinestatic

Definition at line 570 of file jit-typeinfo.h.

Referenced by jit_magic_end::overload().

static const jit_function& jit_typeinfo::end ( jit_value value,
jit_value index,
jit_value count 
)
inlinestatic

Definition at line 575 of file jit-typeinfo.h.

octave_builtin * jit_typeinfo::find_builtin ( const std::string name)
private

Definition at line 2050 of file jit-typeinfo.cc.

References symbol_table::find(), and octave_value::internal_rep().

Referenced by add_builtin(), and register_generic().

static const jit_operation& jit_typeinfo::for_check ( void  )
inlinestatic

Definition at line 520 of file jit-typeinfo.h.

Referenced by jit_convert::visit_simple_for_command().

static const jit_operation& jit_typeinfo::for_index ( void  )
inlinestatic

Definition at line 525 of file jit-typeinfo.h.

Referenced by jit_convert::visit_simple_for_command().

static const jit_operation& jit_typeinfo::for_init ( void  )
inlinestatic

Definition at line 515 of file jit-typeinfo.h.

Referenced by jit_convert::visit_simple_for_command().

static jit_type* jit_typeinfo::get_any ( void  )
inlinestatic
static jit_type* jit_typeinfo::get_any_ptr ( void  )
inlinestatic

Definition at line 457 of file jit-typeinfo.h.

Referenced by jit_function_info::jit_function_info().

static jit_type* jit_typeinfo::get_bool ( void  )
inlinestatic

Definition at line 463 of file jit-typeinfo.h.

static jit_type* jit_typeinfo::get_complex ( void  )
inlinestatic

Definition at line 470 of file jit-typeinfo.h.

Referenced by do_type_of(), unpack_complex(), and jit_convert::visit_constant().

static const jit_function& jit_typeinfo::get_grab ( jit_type type)
inlinestatic

Definition at line 490 of file jit-typeinfo.h.

Referenced by register_generic().

static jit_type* jit_typeinfo::get_index ( void  )
inlinestatic
static llvm::Type* jit_typeinfo::get_index_llvm ( void  )
inlinestatic

Definition at line 467 of file jit-typeinfo.h.

static jit_type* jit_typeinfo::get_matrix ( void  )
inlinestatic
static jit_type* jit_typeinfo::get_range ( void  )
inlinestatic

Definition at line 459 of file jit-typeinfo.h.

References jit_type::to_llvm().

Referenced by do_type_of(), and jit_convert::visit_constant().

static const jit_function& jit_typeinfo::get_release ( jit_type type)
inlinestatic

Definition at line 500 of file jit-typeinfo.h.

Referenced by jit_typeinfo(), jit_call::needs_release(), and jit_convert_llvm::visit().

static jit_type* jit_typeinfo::get_scalar ( void  )
inlinestatic
static llvm::Type* jit_typeinfo::get_scalar_llvm ( void  )
inlinestatic

Definition at line 452 of file jit-typeinfo.h.

Referenced by jit_index_operation::create_arg_array().

static jit_type* jit_typeinfo::get_scalar_ptr ( void  )
inlinestatic
static jit_type* jit_typeinfo::get_string ( void  )
inlinestatic

Definition at line 461 of file jit-typeinfo.h.

static const jit_operation& jit_typeinfo::grab ( void  )
inlinestatic
void jit_typeinfo::initialize ( llvm::Module *  m,
llvm::ExecutionEngine *  e 
)
static

Definition at line 1034 of file jit-typeinfo.cc.

Referenced by tree_jit::initialize().

static llvm::Value* jit_typeinfo::insert_error_check ( llvm::IRBuilderD bld)
inlinestatic

Definition at line 560 of file jit-typeinfo.h.

Referenced by jit_convert_llvm::visit().

static llvm::Value* jit_typeinfo::insert_interrupt_check ( llvm::IRBuilderD bld)
inlinestatic

Definition at line 565 of file jit-typeinfo.h.

Referenced by jit_convert_llvm::visit().

jit_type * jit_typeinfo::intN ( size_t  nbits) const
private

Definition at line 2196 of file jit-typeinfo.cc.

References ints.

Referenced by add_print(), jit_typeinfo(), and register_generic().

static jit_type* jit_typeinfo::join ( jit_type lhs,
jit_type rhs 
)
inlinestatic

Definition at line 441 of file jit-typeinfo.h.

References e, initialize(), and m.

Referenced by jit_phi::infer().

static const jit_operation& jit_typeinfo::logically_true ( void  )
inlinestatic
static const jit_operation& jit_typeinfo::make_range ( void  )
inlinestatic

Definition at line 530 of file jit-typeinfo.h.

Referenced by jit_convert::visit_colon_expression().

jit_function jit_typeinfo::mirror_binary ( const jit_function fn)
private
jit_type * jit_typeinfo::new_type ( const std::string name,
jit_type parent,
llvm::Type *  llvm_type,
bool  skip_paren = false 
)
private

Definition at line 1879 of file jit-typeinfo.cc.

References id_to_type, and next_id.

Referenced by add_builtin(), create_int(), and jit_typeinfo().

llvm::Value * jit_typeinfo::pack_complex ( llvm::IRBuilderD bld,
llvm::Value *  cplx 
)
staticprivate

Definition at line 2126 of file jit-typeinfo.cc.

References complex_ret, imag(), instance, and real().

Referenced by jit_typeinfo().

static const jit_operation& jit_typeinfo::paren_subsasgn ( void  )
inlinestatic

Definition at line 540 of file jit-typeinfo.h.

Referenced by jit_convert::resolve().

static const jit_operation& jit_typeinfo::paren_subsref ( void  )
inlinestatic

Definition at line 535 of file jit-typeinfo.h.

Referenced by jit_convert::resolve().

static const jit_operation& jit_typeinfo::print_value ( void  )
inlinestatic

Definition at line 510 of file jit-typeinfo.h.

Referenced by jit_convert::do_assign(), and jit_convert::visit_statement().

void jit_typeinfo::register_generic ( const std::string name,
jit_type result,
jit_type arg0 
)
inlineprivate

Definition at line 752 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

void jit_typeinfo::register_generic ( const std::string name,
jit_type result,
const std::vector< jit_type * > &  args 
)
private
void jit_typeinfo::register_intrinsic ( const std::string name,
size_t  id,
jit_type result,
jit_type arg0 
)
inlineprivate

Definition at line 742 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

void jit_typeinfo::register_intrinsic ( const std::string name,
size_t  id,
jit_type result,
const std::vector< jit_type * > &  args 
)
private
static const jit_operation& jit_typeinfo::release ( void  )
inlinestatic

Definition at line 495 of file jit-typeinfo.h.

Referenced by jit_infer::release_dead_phi(), and jit_infer::release_temp().

static jit_type* jit_typeinfo::type_of ( const octave_value ov)
inlinestatic
static const jit_operation& jit_typeinfo::unary_op ( int  op)
inlinestatic
llvm::Value * jit_typeinfo::unpack_complex ( llvm::IRBuilderD bld,
llvm::Value *  result 
)
staticprivate

Definition at line 2140 of file jit-typeinfo.cc.

References get_complex(), imag(), real(), and jit_type::to_llvm().

Referenced by jit_typeinfo().

llvm::Function* jit_typeinfo::wrap_complex ( llvm::Function *  wrap)
private

Member Data Documentation

jit_type* jit_typeinfo::any
private

Definition at line 800 of file jit-typeinfo.h.

Referenced by add_builtin(), create_int(), jit_typeinfo(), and register_generic().

jit_function jit_typeinfo::any_call
private

Definition at line 833 of file jit-typeinfo.h.

Referenced by jit_typeinfo(), and register_generic().

jit_type* jit_typeinfo::any_ptr
private

Definition at line 804 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

std::vector<jit_operation> jit_typeinfo::binary_ops
private

Definition at line 816 of file jit-typeinfo.h.

Referenced by add_binary_fcmp(), add_binary_icmp(), add_binary_op(), and jit_typeinfo().

jit_type* jit_typeinfo::boolean
private

Definition at line 807 of file jit-typeinfo.h.

Referenced by add_binary_fcmp(), and add_binary_icmp().

llvm::IRBuilderD& jit_typeinfo::builder
private
std::map<std::string, jit_type *> jit_typeinfo::builtins
private

Definition at line 812 of file jit-typeinfo.h.

Referenced by add_builtin(), jit_typeinfo(), register_generic(), and register_intrinsic().

std::vector<jit_operation> jit_typeinfo::casts
private

Definition at line 836 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::complex
private

Definition at line 809 of file jit-typeinfo.h.

Referenced by complex_new(), and jit_typeinfo().

llvm::StructType* jit_typeinfo::complex_ret
private

Definition at line 814 of file jit-typeinfo.h.

Referenced by jit_typeinfo(), and pack_complex().

jit_operation jit_typeinfo::create_undef_fn
private

Definition at line 831 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::destroy_fn
private

Definition at line 820 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::end1_fn
private

Definition at line 829 of file jit-typeinfo.h.

Referenced by do_end(), and jit_typeinfo().

jit_operation jit_typeinfo::end_fn
private

Definition at line 830 of file jit-typeinfo.h.

Referenced by do_end(), and jit_typeinfo().

llvm::ExecutionEngine* jit_typeinfo::engine
private

Definition at line 791 of file jit-typeinfo.h.

Referenced by add_print(), and jit_typeinfo().

jit_operation jit_typeinfo::for_check_fn
private

Definition at line 823 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::for_index_fn
private

Definition at line 824 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::for_init_fn
private

Definition at line 822 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::grab_fn
private

Definition at line 818 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

std::vector<jit_type*> jit_typeinfo::id_to_type
private

Definition at line 799 of file jit-typeinfo.h.

Referenced by new_type().

std::vector<jit_function> jit_typeinfo::identities
private

Definition at line 839 of file jit-typeinfo.h.

Referenced by create_identity(), and jit_typeinfo().

jit_type* jit_typeinfo::index
private

Definition at line 808 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_typeinfo * jit_typeinfo::instance = 0
staticprivate

Definition at line 788 of file jit-typeinfo.h.

Referenced by jit_typeinfo(), and pack_complex().

std::map<size_t, jit_type *> jit_typeinfo::ints
private

Definition at line 811 of file jit-typeinfo.h.

Referenced by create_int(), and intN().

llvm::GlobalVariable* jit_typeinfo::lerror_state
private

Definition at line 794 of file jit-typeinfo.h.

Referenced by do_insert_error_check(), and jit_typeinfo().

llvm::GlobalVariable* jit_typeinfo::loctave_interrupt_state
private

Definition at line 795 of file jit-typeinfo.h.

Referenced by do_insert_interrupt_check(), and jit_typeinfo().

jit_operation jit_typeinfo::logically_true_fn
private

Definition at line 825 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::make_range_fn
private

Definition at line 826 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::matrix
private

Definition at line 801 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

llvm::Module* jit_typeinfo::module
private

Definition at line 790 of file jit-typeinfo.h.

Referenced by create_function(), jit_typeinfo(), and register_intrinsic().

int jit_typeinfo::next_id
private

Definition at line 792 of file jit-typeinfo.h.

Referenced by jit_typeinfo(), and new_type().

jit_paren_subsasgn jit_typeinfo::paren_subsasgn_fn
private

Definition at line 828 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_paren_subsref jit_typeinfo::paren_subsref_fn
private

Definition at line 827 of file jit-typeinfo.h.

Referenced by jit_typeinfo(), register_generic(), and register_intrinsic().

jit_operation jit_typeinfo::print_fn
private

Definition at line 821 of file jit-typeinfo.h.

Referenced by add_print(), and jit_typeinfo().

jit_type* jit_typeinfo::range
private

Definition at line 805 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::release_fn
private

Definition at line 819 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::scalar
private

Definition at line 802 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::scalar_ptr
private

Definition at line 803 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

llvm::Type* jit_typeinfo::sig_atomic_type
private

Definition at line 797 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::string
private

Definition at line 806 of file jit-typeinfo.h.

std::vector<jit_operation> jit_typeinfo::unary_ops
private

Definition at line 817 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::unknown_function
private

Definition at line 810 of file jit-typeinfo.h.

Referenced by do_type_of(), and jit_typeinfo().


The documentation for this class was generated from the following files: