GNU Octave  4.0.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
Classes | Macros | Typedefs | Functions
jit-ir.h File Reference
#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 116 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 ()) \
{ }
#define OCT_MAKE_DECL_LIST(TYPE, PREFIX, NUM)
Definition: lo-macros.h:92
double arg(double x)
Definition: lo-mappers.h:37
F77_RET_T const octave_idx_type & N
Definition: CmplxGEPBAL.cc:39
#define OCT_MAKE_ARG_LIST(PREFIX, NUM)
Definition: lo-macros.h:96

Definition at line 1132 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; \
}
#define OCT_MAKE_LIST(MACRO, NUM)
Definition: lo-macros.h:86
double arg(double x)
Definition: lo-mappers.h:37
#define DECL_ARG(n)
Definition: jit-ir.h:116
F77_RET_T const octave_idx_type & N
Definition: CmplxGEPBAL.cc:39
#define OCT_MAKE_ARG_LIST(PREFIX, NUM)
Definition: lo-macros.h:96

Definition at line 117 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:79
#define STASH_ARG(i)
Definition: jit-ir.h:335
#define OCT_MAKE_DECL_LIST(TYPE, PREFIX, NUM)
Definition: lo-macros.h:92
double arg(double x)
Definition: lo-mappers.h:37
F77_RET_T const octave_idx_type & N
Definition: CmplxGEPBAL.cc:39

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

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

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

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

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

#define JIT_TERMINATOR_CONST (   N)
Value:
jit_terminator (size_t asuccessor_count, \
malive (asuccessor_count, false) { }
#define OCT_MAKE_DECL_LIST(TYPE, PREFIX, NUM)
Definition: lo-macros.h:92
double arg(double x)
Definition: lo-mappers.h:37
F77_RET_T const octave_idx_type & N
Definition: CmplxGEPBAL.cc:39
#define OCT_MAKE_ARG_LIST(PREFIX, NUM)
Definition: lo-macros.h:96

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

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

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

#define JIT_VISIT_IR_CLASSES
Value:

Definition at line 63 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:1398

Definition at line 55 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(variable); \
JIT_METH(error_check); \
JIT_METH(assign) \
JIT_METH(argument) \
JIT_METH(magic_end)
#define JIT_METH(cname)
Definition: jit-ir.h:1398

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

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

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

Typedef Documentation

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

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

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

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

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

typedef jit_const<std::string, jit_typeinfo::get_string, const std::string&, true> jit_const_string

Definition at line 89 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().