GNU Octave  3.8.0
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, OCT_MAKE_DECL_LIST(jit_type *, arg, 1))
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, OCT_MAKE_DECL_LIST(jit_type *, arg, 2))
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, OCT_MAKE_DECL_LIST(jit_type *, arg, 3))
template<typename T >
jit_function create_external (llvm::ExecutionEngine *ee, T fn, const llvm::Twine &name, jit_type *ret, OCT_MAKE_DECL_LIST(jit_type *, arg, 4))
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, OCT_MAKE_DECL_LIST(jit_type *, arg, 1))
jit_function create_internal (const llvm::Twine &name, jit_type *ret, OCT_MAKE_DECL_LIST(jit_type *, arg, 2))
jit_function create_internal (const llvm::Twine &name, jit_type *ret, OCT_MAKE_DECL_LIST(jit_type *, arg, 3))
jit_function create_internal (const llvm::Twine &name, jit_type *ret, OCT_MAKE_DECL_LIST(jit_type *, arg, 4))
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 441 of file jit-typeinfo.h.

Constructor & Destructor Documentation

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

Definition at line 1072 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(), end1_fn, end_fn, engine, error_state, jit_convention::external, for_check_fn, for_index_fn, for_init_fn, get_release(), grab_fn, gripe_divide_by_zero(), 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_gripe_nan_to_logical_conversion(), 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, op_add(), octave_value::op_decr, op_div(), octave_value::op_el_and, op_el_div(), op_el_ldiv(), octave_value::op_el_mul, op_el_mul(), octave_value::op_el_or, op_el_pow(), octave_value::op_eq, octave_value::op_ge, octave_value::op_gt, op_hermitian(), octave_value::op_incr, op_ldiv(), octave_value::op_le, octave_value::op_lt, octave_value::op_mul, op_mul(), octave_value::op_ne, op_pow(), octave_value::op_sub, op_sub(), op_transpose(), 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(), jit_type::to_llvm(), jit_type::type_id(), octave_value::unary_op_as_string(), unary_ops, unknown_function, and unpack_complex().

Referenced by initialize().

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 561 of file jit-typeinfo.h.

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

Definition at line 2201 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 2207 of file jit-typeinfo.cc.

References builder.

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

Definition at line 2213 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 2189 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 2195 of file jit-typeinfo.cc.

References builder.

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

Definition at line 592 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 686 of file jit-typeinfo.h.

References jit_function::add_mapping(), and jit_convention::external.

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,
OCT_MAKE_DECL_LIST(jit_type *, arg,1)   
)
inlineprivate

Definition at line 704 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,
OCT_MAKE_DECL_LIST(jit_type *, arg,2)   
)
inlineprivate

Definition at line 705 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,
OCT_MAKE_DECL_LIST(jit_type *, arg,3)   
)
inlineprivate

Definition at line 706 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,
OCT_MAKE_DECL_LIST(jit_type *, arg,4)   
)
inlineprivate

Definition at line 707 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 1991 of file jit-typeinfo.cc.

References module.

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

Definition at line 2221 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,
OCT_MAKE_DECL_LIST(jit_type *, arg,1)   
)
inlineprivate

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

jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
OCT_MAKE_DECL_LIST(jit_type *, arg,2)   
)
inlineprivate

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

jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
OCT_MAKE_DECL_LIST(jit_type *, arg,3)   
)
inlineprivate

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

jit_function jit_typeinfo::create_internal ( const llvm::Twine &  name,
jit_type ret,
OCT_MAKE_DECL_LIST(jit_type *, arg,4)   
)
inlineprivate

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

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

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

Referenced by jit_convert::create_variable().

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

Definition at line 511 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 639 of file jit-typeinfo.h.

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

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

References jit_type::type_id().

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

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

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

Definition at line 631 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 2022 of file jit-typeinfo.cc.

References lerror_state.

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

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

References loctave_interrupt_state.

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

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

References jit_type::depth(), and jit_type::parent().

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 645 of file jit-typeinfo.h.

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

Definition at line 576 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 581 of file jit-typeinfo.h.

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

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

References 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 526 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 531 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 521 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 463 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 469 of file jit-typeinfo.h.

static jit_type* jit_typeinfo::get_complex ( void  )
inlinestatic

Definition at line 476 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 496 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 473 of file jit-typeinfo.h.

References jit_type::to_llvm().

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

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

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 506 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 458 of file jit-typeinfo.h.

References jit_type::to_llvm().

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 467 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 1064 of file jit-typeinfo.cc.

References jit_typeinfo().

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

Definition at line 566 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 571 of file jit-typeinfo.h.

Referenced by jit_convert_llvm::visit().

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

Definition at line 2230 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 447 of file jit-typeinfo.h.

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 536 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 1913 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 2160 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 546 of file jit-typeinfo.h.

Referenced by jit_convert::resolve().

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

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

Referenced by jit_convert::resolve().

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

Definition at line 516 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 759 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 749 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 501 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 2174 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 807 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 840 of file jit-typeinfo.h.

Referenced by jit_typeinfo(), and register_generic().

jit_type* jit_typeinfo::any_ptr
private

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

Referenced by jit_typeinfo().

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

Definition at line 823 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 814 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 819 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 843 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::complex
private

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

Referenced by complex_new(), and jit_typeinfo().

llvm::StructType* jit_typeinfo::complex_ret
private

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

Referenced by jit_typeinfo(), and pack_complex().

jit_operation jit_typeinfo::create_undef_fn
private

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

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::destroy_fn
private

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

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::end1_fn
private

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

Referenced by do_end(), and jit_typeinfo().

jit_operation jit_typeinfo::end_fn
private

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

Referenced by do_end(), and jit_typeinfo().

llvm::ExecutionEngine* jit_typeinfo::engine
private

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

Referenced by add_print(), and jit_typeinfo().

jit_operation jit_typeinfo::for_check_fn
private

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

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::for_index_fn
private

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

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::for_init_fn
private

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

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::grab_fn
private

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

Referenced by jit_typeinfo().

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

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

Referenced by new_type().

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

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

Referenced by create_identity(), and jit_typeinfo().

jit_type* jit_typeinfo::index
private

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

Referenced by jit_typeinfo().

jit_typeinfo * jit_typeinfo::instance = 0
staticprivate

Definition at line 795 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 818 of file jit-typeinfo.h.

Referenced by create_int(), and intN().

llvm::GlobalVariable* jit_typeinfo::lerror_state
private

Definition at line 801 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 802 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 832 of file jit-typeinfo.h.

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::make_range_fn
private

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

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::matrix
private

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

Referenced by jit_typeinfo().

llvm::Module* jit_typeinfo::module
private

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

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

int jit_typeinfo::next_id
private

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

Referenced by jit_typeinfo(), and new_type().

jit_paren_subsasgn jit_typeinfo::paren_subsasgn_fn
private

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

Referenced by jit_typeinfo().

jit_paren_subsref jit_typeinfo::paren_subsref_fn
private

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

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

jit_operation jit_typeinfo::print_fn
private

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

Referenced by add_print(), and jit_typeinfo().

jit_type* jit_typeinfo::range
private

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

Referenced by jit_typeinfo().

jit_operation jit_typeinfo::release_fn
private

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

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::scalar
private

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

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::scalar_ptr
private

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

Referenced by jit_typeinfo().

llvm::Type* jit_typeinfo::sig_atomic_type
private

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

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::string
private

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

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

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

Referenced by jit_typeinfo().

jit_type* jit_typeinfo::unknown_function
private

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

Referenced by do_type_of(), and jit_typeinfo().


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