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
Classes | Macros | Typedefs | Functions
jit-ir.h File Reference
#include "octave-config.h"
#include <list>
#include <stack>
#include <set>
#include "jit-typeinfo.h"
Include dependency graph for jit-ir.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  jit_magic_end::context
 
class  jit_argument
 
class  jit_assign
 
class  jit_assign_base
 
class  jit_block
 
class  jit_block_list
 
class  jit_branch
 
class  jit_call
 
class  jit_cond_branch
 
class  jit_const< T, EXTRACT_T, PASS_T, QUOTE >
 
class  jit_const< T, EXTRACT_T, PASS_T, QUOTE >
 
class  jit_error_check
 
class  jit_extract_argument
 
class  jit_factory
 
class  jit_instruction
 
class  jit_ir_walker
 
class  jit_magic_end
 
class  jit_phi
 
class  jit_phi_incomming
 
class  jit_return
 
class  jit_store_argument
 
class  jit_terminator
 
class  jit_use
 
class  jit_value
 
class  jit_variable
 

Macros

#define DECL_ARG(n)   const ARG ## n& arg ## n
 
#define JIT_CALL_CONST(N)
 
#define JIT_CREATE(N)
 
#define JIT_INSTRUCTION_CTOR(N)
 
#define JIT_METH(cname)   class jit_ ## cname;
 
#define JIT_METH(clname)   virtual void visit (jit_ ## clname&) = 0;
 
#define JIT_TERMINATOR_CONST(N)
 
#define JIT_VALUE_ACCEPT   virtual void accept (jit_ir_walker& walker);
 
#define JIT_VISIT_IR_CLASSES
 
#define JIT_VISIT_IR_CONST
 
#define JIT_VISIT_IR_NOTEMPLATE
 
#define STASH_ARG(i)   stash_argument (i, arg ## i);
 

Typedefs

typedef jit_const< bool,
jit_typeinfo::get_bool
jit_const_bool
 
typedef jit_const< Complex,
jit_typeinfo::get_complex
jit_const_complex
 
typedef jit_const
< octave_idx_type,
jit_typeinfo::get_index
jit_const_index
 
typedef jit_const< jit_range,
jit_typeinfo::get_range, const
jit_range & > 
jit_const_range
 
typedef jit_const< double,
jit_typeinfo::get_scalar
jit_const_scalar
 
typedef jit_const< std::string,
jit_typeinfo::get_string,
const std::string &, true > 
jit_const_string
 

Functions

std::ostream & jit_print (std::ostream &os, jit_value *avalue)
 
std::ostream & operator<< (std::ostream &os, const jit_block_list &blocks)
 
std::ostream & operator<< (std::ostream &os, const jit_value &value)
 

Macro Definition Documentation

#define DECL_ARG (   n)    const ARG ## n& arg ## n

Definition at line 120 of file jit-ir.h.

#define JIT_CALL_CONST (   N)
Value:
jit_call (const jit_operation& aoperation, \
: jit_instruction (OCT_MAKE_ARG_LIST (arg, N)), moperation (aoperation) { } \
\
jit_call (const jit_operation& (*aoperation) (void), \
: jit_instruction (OCT_MAKE_ARG_LIST (arg, N)), moperation (aoperation ()) \
{ }
octave_value arg
Definition: pr-output.cc:3440
F77_RET_T const F77_INT & N
#define OCT_MAKE_DECL_LIST(TYPE, PREFIX, NUM)
Definition: lo-macros.h:95
#define OCT_MAKE_ARG_LIST(PREFIX, NUM)
Definition: lo-macros.h:99

Definition at line 1141 of file jit-ir.h.

#define JIT_CREATE (   N)
Value:
template <typename T, OCT_MAKE_DECL_LIST (typename, ARG, N)> \
T *create (OCT_MAKE_LIST (DECL_ARG, N)) \
{ \
T *ret = new T (OCT_MAKE_ARG_LIST (arg, N)); \
track_value (ret); \
return ret; \
}
octave_value arg
Definition: pr-output.cc:3440
#define OCT_MAKE_LIST(MACRO, NUM)
Definition: lo-macros.h:89
F77_RET_T const F77_INT & N
#define DECL_ARG(n)
Definition: jit-ir.h:120
#define OCT_MAKE_ARG_LIST(PREFIX, NUM)
Definition: lo-macros.h:99

Definition at line 122 of file jit-ir.h.

#define JIT_INSTRUCTION_CTOR (   N)
Value:
: already_infered (N), marguments (N), mid (next_id ()), mparent (0) \
{ \
}
#define OCT_ITERATE_MACRO(MACRO, NUM)
Definition: lo-macros.h:82
#define STASH_ARG(i)
Definition: jit-ir.h:342
octave_value arg
Definition: pr-output.cc:3440
F77_RET_T const F77_INT & N
#define OCT_MAKE_DECL_LIST(TYPE, PREFIX, NUM)
Definition: lo-macros.h:95

Definition at line 344 of file jit-ir.h.

#define JIT_METH (   cname)    class jit_ ## cname;

Definition at line 1407 of file jit-ir.h.

#define JIT_METH (   clname)    virtual void visit (jit_ ## clname&) = 0;

Definition at line 1407 of file jit-ir.h.

#define JIT_TERMINATOR_CONST (   N)
Value:
jit_terminator (size_t asuccessor_count, \
malive (asuccessor_count, false) { }
octave_value arg
Definition: pr-output.cc:3440
F77_RET_T const F77_INT & N
#define OCT_MAKE_DECL_LIST(TYPE, PREFIX, NUM)
Definition: lo-macros.h:95
#define OCT_MAKE_ARG_LIST(PREFIX, NUM)
Definition: lo-macros.h:99

Definition at line 1022 of file jit-ir.h.

#define JIT_VALUE_ACCEPT   virtual void accept (jit_ir_walker& walker);

Definition at line 487 of file jit-ir.h.

#define JIT_VISIT_IR_CLASSES
Value:

Definition at line 65 of file jit-ir.h.

#define JIT_VISIT_IR_CONST
Value:
JIT_METH(const_bool); \
JIT_METH(const_scalar); \
JIT_METH(const_complex); \
JIT_METH(const_index); \
JIT_METH(const_string); \
JIT_METH(const_range)
#define JIT_METH(cname)
Definition: jit-ir.h:1407

Definition at line 57 of file jit-ir.h.

#define JIT_VISIT_IR_NOTEMPLATE
Value:
JIT_METH(block); \
JIT_METH(branch); \
JIT_METH(cond_branch); \
JIT_METH(call); \
JIT_METH(extract_argument); \
JIT_METH(store_argument); \
JIT_METH(return); \
JIT_METH(phi); \
JIT_METH(error_check); \
JIT_METH(assign) \
JIT_METH(magic_end)
is any Octave expression that can be evaluated in the code context that exists at the breakpoint When the breakpoint is and execution will stop if for example because it refers to an undefined variable
Definition: debug.cc:1099
#define JIT_METH(cname)
Definition: jit-ir.h:1407
returns the type of the matrix and caches it for future use Called with more than one argument
Definition: matrix_type.cc:120

Definition at line 42 of file jit-ir.h.

#define STASH_ARG (   i)    stash_argument (i, arg ## i);

Definition at line 342 of file jit-ir.h.

Typedef Documentation

Definition at line 83 of file jit-ir.h.

Definition at line 87 of file jit-ir.h.

Definition at line 88 of file jit-ir.h.

Definition at line 93 of file jit-ir.h.

Definition at line 86 of file jit-ir.h.

Definition at line 91 of file jit-ir.h.

Function Documentation

std::ostream& jit_print ( std::ostream &  os,
jit_value avalue 
)

Definition at line 195 of file jit-ir.cc.

References jit_value::print().

Referenced by jit_argument::print(), and jit_instruction::short_print().

std::ostream& operator<< ( std::ostream &  os,
const jit_block_list blocks 
)

Definition at line 130 of file jit-ir.cc.

References jit_block_list::begin(), and jit_block_list::end().

std::ostream& operator<< ( std::ostream &  os,
const jit_value value 
)

Definition at line 189 of file jit-ir.cc.

References jit_value::short_print().