GNU Octave
3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
|
#include "jit-typeinfo.h"
#include <llvm/Analysis/Verifier.h>
#include <llvm/ExecutionEngine/ExecutionEngine.h>
#include <llvm/GlobalVariable.h>
#include <llvm/LLVMContext.h>
#include <llvm/Function.h>
#include <llvm/Instructions.h>
#include <llvm/Intrinsics.h>
#include <llvm/IRBuilder.h>
#include <llvm/Support/raw_os_ostream.h>
#include "jit-ir.h"
#include "ov.h"
#include "ov-builtin.h"
#include "ov-complex.h"
#include "ov-scalar.h"
#include "pager.h"
Go to the source code of this file.
Macros | |
#define | __STDC_CONSTANT_MACROS |
#define | __STDC_LIMIT_MACROS |
#define | JIT_FN(fn) engine, &fn, #fn |
Variables | |
static llvm::LLVMContext & | context = llvm::getGlobalContext () |
#define __STDC_CONSTANT_MACROS |
Definition at line 27 of file jit-typeinfo.cc.
#define __STDC_LIMIT_MACROS |
Definition at line 26 of file jit-typeinfo.cc.
#define JIT_FN | ( | fn | ) | engine, &fn, #fn |
Definition at line 1070 of file jit-typeinfo.cc.
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 470 of file jit-typeinfo.cc.
References error().
Referenced by octave_jit_call().
std::ostream& jit_print | ( | std::ostream & | os, |
jit_type * | atype | ||
) |
Definition at line 75 of file jit-typeinfo.cc.
References jit_type::name().
|
static |
Definition at line 266 of file jit-typeinfo.cc.
References Array< T >::resize().
Referenced by octave_jit_paren_scalar(), and octave_jit_paren_scalar_subsasgn().
octave_base_value* octave_jit_binary_any_any | ( | octave_value::binary_op | op, |
octave_base_value * | lhs, | ||
octave_base_value * | rhs | ||
) |
Definition at line 98 of file jit-typeinfo.cc.
References do_binary_op(), octave_base_value::grab(), and octave_value::internal_rep().
Referenced by jit_typeinfo::jit_typeinfo().
octave_base_value* octave_jit_call | ( | octave_builtin::fcn | fn, |
size_t | nargin, | ||
octave_base_value ** | argin, | ||
jit_type * | result_type | ||
) |
Definition at line 477 of file jit-typeinfo.cc.
References octave_base_value::grab(), gripe_bad_result(), octave_value::internal_rep(), octave_value::is_undefined(), octave_value_list::length(), octave_value(), ovl(), and octave_value_list::xelem().
Referenced by jit_typeinfo::jit_typeinfo().
octave_base_value* octave_jit_cast_any_complex | ( | Complex | c | ) |
Definition at line 202 of file jit-typeinfo.cc.
Referenced by jit_typeinfo::jit_typeinfo().
octave_base_value* octave_jit_cast_any_matrix | ( | jit_matrix * | m | ) |
Definition at line 142 of file jit-typeinfo.cc.
References jit_array< T, U >::array, octave_base_value::grab(), and octave_value::internal_rep().
Referenced by jit_typeinfo::jit_typeinfo().
octave_base_value* octave_jit_cast_any_range | ( | jit_range * | rng | ) |
Definition at line 161 of file jit-typeinfo.cc.
References octave_base_value::grab(), and octave_value::internal_rep().
Referenced by jit_typeinfo::jit_typeinfo().
octave_base_value* octave_jit_cast_any_scalar | ( | double | value | ) |
Definition at line 188 of file jit-typeinfo.cc.
Referenced by jit_typeinfo::jit_typeinfo().
Complex octave_jit_cast_complex_any | ( | octave_base_value * | obv | ) |
Definition at line 194 of file jit-typeinfo.cc.
References octave_base_value::complex_value(), and octave_base_value::release().
Referenced by jit_typeinfo::jit_typeinfo().
jit_matrix octave_jit_cast_matrix_any | ( | octave_base_value * | obv | ) |
Definition at line 153 of file jit-typeinfo.cc.
References octave_base_value::array_value(), and octave_base_value::release().
Referenced by jit_typeinfo::jit_typeinfo().
jit_range octave_jit_cast_range_any | ( | octave_base_value * | obv | ) |
Definition at line 171 of file jit-typeinfo.cc.
References octave_base_value::range_value(), and octave_base_value::release().
Referenced by jit_typeinfo::jit_typeinfo().
double octave_jit_cast_scalar_any | ( | octave_base_value * | obv | ) |
Definition at line 180 of file jit-typeinfo.cc.
References octave_base_value::double_value(), and octave_base_value::release().
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 412 of file jit-typeinfo.cc.
References gripe_divide_by_zero().
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 403 of file jit-typeinfo.cc.
Referenced by jit_typeinfo::jit_typeinfo().
octave_idx_type octave_jit_compute_nelem | ( | double | base, |
double | limit, | ||
double | inc | ||
) |
Definition at line 110 of file jit-typeinfo.cc.
References Range::nelem().
Referenced by jit_typeinfo::jit_typeinfo().
octave_base_value* octave_jit_create_undef | ( | void | ) |
Definition at line 393 of file jit-typeinfo.cc.
References octave_base_value::grab(), and octave_value::internal_rep().
Referenced by jit_typeinfo::jit_typeinfo().
double octave_jit_end_matrix | ( | jit_matrix * | mat, |
octave_idx_type | idx, | ||
octave_idx_type | count | ||
) |
Definition at line 370 of file jit-typeinfo.cc.
References jit_array< T, U >::dimensions.
Referenced by jit_typeinfo::jit_typeinfo().
void octave_jit_gindex_range | ( | int | nd, |
int | dim, | ||
octave_idx_type | iext, | ||
octave_idx_type | ext | ||
) |
Definition at line 237 of file jit-typeinfo.cc.
References gripe_index_out_of_range(), and gripe_library_execution_error().
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 224 of file jit-typeinfo.cc.
References gripe_invalid_index(), and gripe_library_execution_error().
Referenced by jit_typeinfo::jit_typeinfo().
octave_base_value* octave_jit_grab_any | ( | octave_base_value * | obv | ) |
Definition at line 129 of file jit-typeinfo.cc.
References octave_base_value::grab().
Referenced by jit_typeinfo::jit_typeinfo().
jit_matrix octave_jit_grab_matrix | ( | jit_matrix * | m | ) |
Definition at line 136 of file jit-typeinfo.cc.
References jit_array< T, U >::array.
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 211 of file jit-typeinfo.cc.
References gripe_library_execution_error(), and gripe_nan_to_logical_conversion().
Referenced by jit_typeinfo::jit_typeinfo().
double octave_jit_paren_scalar | ( | jit_matrix * | mat, |
double * | indicies, | ||
octave_idx_type | idx_count | ||
) |
Definition at line 275 of file jit-typeinfo.cc.
References jit_array< T, U >::array, gripe_library_execution_error(), make_indices(), and Array< T >::xelem().
Referenced by jit_paren_subsref::do_initialize().
jit_matrix octave_jit_paren_scalar_subsasgn | ( | jit_matrix * | mat, |
double * | indices, | ||
octave_idx_type | idx_count, | ||
double | value | ||
) |
Definition at line 295 of file jit-typeinfo.cc.
References jit_array< T, U >::array, gripe_library_execution_error(), make_indices(), jit_array< T, U >::update(), and Array< T >::xelem().
Referenced by jit_paren_subsasgn::do_initialize().
jit_matrix octave_jit_paren_subsasgn_impl | ( | jit_matrix * | mat, |
octave_idx_type | index, | ||
double | value | ||
) |
Definition at line 251 of file jit-typeinfo.cc.
References jit_array< T, U >::array, Array< T >::fortran_vec(), Array< T >::nelem(), Array< T >::resize1(), and jit_array< T, U >::update().
Referenced by jit_typeinfo::jit_typeinfo().
jit_matrix octave_jit_paren_subsasgn_matrix_range | ( | jit_matrix * | mat, |
jit_range * | index, | ||
double | value | ||
) |
Definition at line 319 of file jit-typeinfo.cc.
References jit_range::all_elements_are_ints(), jit_array< T, U >::array, Array< T >::assign(), jit_range::base, jit_range::inc, Array< T >::jit_ref_count(), Array< T >::jit_slice_data(), jit_range::nelem, jit_array< T, U >::update(), and Array< T >::xelem().
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 440 of file jit-typeinfo.cc.
References octave_jit_pow_scalar_scalar(), and pow().
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 448 of file jit-typeinfo.cc.
References octave_jit_pow_scalar_scalar(), and pow().
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 456 of file jit-typeinfo.cc.
References octave_jit_pow_scalar_scalar(), and pow().
Referenced by jit_typeinfo::jit_typeinfo().
Definition at line 431 of file jit-typeinfo.cc.
References pow(), and xisint().
Referenced by jit_typeinfo::jit_typeinfo(), octave_jit_pow_complex_complex(), octave_jit_pow_complex_scalar(), and octave_jit_pow_scalar_complex().
void octave_jit_print_any | ( | const char * | name, |
octave_base_value * | obv | ||
) |
Definition at line 84 of file jit-typeinfo.cc.
References octave_stdout, and octave_base_value::print_with_name().
Referenced by jit_typeinfo::jit_typeinfo().
void octave_jit_print_matrix | ( | jit_matrix * | m | ) |
Definition at line 464 of file jit-typeinfo.cc.
Definition at line 90 of file jit-typeinfo.cc.
References octave_stdout, and octave_value::print_with_name().
Referenced by jit_typeinfo::jit_typeinfo().
void octave_jit_release_any | ( | octave_base_value * | obv | ) |
Definition at line 117 of file jit-typeinfo.cc.
References octave_base_value::release().
Referenced by jit_typeinfo::jit_typeinfo().
void octave_jit_release_matrix | ( | jit_matrix * | m | ) |
Definition at line 123 of file jit-typeinfo.cc.
References jit_array< T, U >::array.
Referenced by jit_typeinfo::jit_typeinfo().
std::ostream& operator<< | ( | std::ostream & | os, |
const jit_range & | rng | ||
) |
Definition at line 517 of file jit-typeinfo.cc.
References jit_range::base, jit_range::inc, jit_range::limit, and jit_range::nelem.
std::ostream& operator<< | ( | std::ostream & | os, |
const jit_matrix & | mat | ||
) |
Definition at line 526 of file jit-typeinfo.cc.
References jit_array< T, U >::array, jit_array< T, U >::dimensions, jit_array< T, U >::ref_count, jit_array< T, U >::slice_data, and jit_array< T, U >::slice_len.
std::ostream& operator<< | ( | std::ostream & | os, |
const jit_function & | fn | ||
) |
Definition at line 794 of file jit-typeinfo.cc.
References jit_function::call_conv, and jit_function::to_llvm().
Definition at line 423 of file jit-typeinfo.cc.
References D_NINT(), max(), and min().
Referenced by elem_xpow(), octave_jit_pow_scalar_scalar(), and xpow().
|
static |
Definition at line 71 of file jit-typeinfo.cc.
Referenced by symbol_table::all_variables(), lexical_feedback::bbp_nesting_level::anon_fcn_body(), symbol_table::symbol_record::symbol_record_rep::assign(), symbol_table::symbol_record::assign(), symbol_table::assign(), lexical_feedback::bbp_nesting_level::brace(), lexical_feedback::bbp_nesting_level::bracket(), jit_function::call(), call_mex(), mex::cleanup(), lexical_feedback::bbp_nesting_level::clear(), jit_typeinfo::create_int(), octave_call_stack::do_backtrace(), octave_user_function::do_multi_index_op(), symbol_table::symbol_record::symbol_record_rep::do_non_const_unary_op(), execute_command_line_file(), execute_startup_files(), symbol_table::force_assign(), symbol_table::force_varref(), Fwarning(), lexical_feedback::bbp_nesting_level::is_anon_fcn_body(), lexical_feedback::bbp_nesting_level::is_brace(), lexical_feedback::bbp_nesting_level::is_bracket(), lexical_feedback::bbp_nesting_level::is_bracket_or_brace(), symbol_table::symbol_record::symbol_record_rep::is_defined(), symbol_table::symbol_record::is_defined(), lexical_feedback::bbp_nesting_level::is_paren(), symbol_table::symbol_record::is_undefined(), symbol_table::symbol_record::is_variable(), jit_function::jit_function(), jit_typeinfo::jit_typeinfo(), jit_function::new_block(), lexical_feedback::bbp_nesting_level::none(), lexical_feedback::bbp_nesting_level::operator=(), lexical_feedback::bbp_nesting_level::paren(), octave_call_stack::push(), lexical_feedback::bbp_nesting_level::remove(), lexical_feedback::bbp_nesting_level::reset(), safe_source_file(), symbol_table::set_scope_and_context(), symbol_table::symbol_record::symbol_record_rep::varref(), symbol_table::symbol_record::varref(), symbol_table::varref(), symbol_table::symbol_record::symbol_record_rep::varval(), symbol_table::symbol_record::varval(), and symbol_table::varval().