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
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_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 ()) \
{ }

Definition at line 1146 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; \
}

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) \
{ \
OCT_ITERATE_MACRO (STASH_ARG, N); \
}

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

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

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

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

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

#define JIT_TERMINATOR_CONST (   N)
Value:
jit_terminator (size_t asuccessor_count, \
malive (asuccessor_count, false) { }

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

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

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

#define JIT_VISIT_IR_CLASSES
Value:
JIT_VISIT_IR_NOTEMPLATE \
JIT_VISIT_IR_CONST

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)

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)

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

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

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