Mercurial > octave
diff src/pt-jit.h @ 14978:f649b66ef1af
Add short circult operators to JIT
* src/pt-jit.cc (jit_convert::jit_convert): Initialize short_count.
(jit_convert::visit_binary_expression): Add support for short circut
operators.
(jit_convert::visit_if_command_list): Remove duplicate check append.
(jit_convert::visit_simple_assignment): Store result.
(jit_convert::convert_llvm::visit): New overload.
* src/pt-jit.h (jit_const_bool): New specialization of jit_const.
(jit_convert::short_count): New variable.
author | Max Brister <max@2bass.com> |
---|---|
date | Wed, 27 Jun 2012 23:43:06 -0500 |
parents | 2d7c0c86e712 |
children | bb1f3a9bb122 |
line wrap: on
line diff
--- a/src/pt-jit.h Wed Jun 27 18:50:59 2012 -0500 +++ b/src/pt-jit.h Wed Jun 27 23:43:06 2012 -0500 @@ -775,6 +775,7 @@ JIT_METH(argument) #define JIT_VISIT_IR_CONST \ + JIT_METH(const_bool); \ JIT_METH(const_scalar); \ JIT_METH(const_index); \ JIT_METH(const_string); \ @@ -802,6 +803,7 @@ bool QUOTE=false> class jit_const; +typedef jit_const<bool, jit_typeinfo::get_bool> jit_const_bool; typedef jit_const<double, jit_typeinfo::get_scalar> jit_const_scalar; typedef jit_const<octave_idx_type, jit_typeinfo::get_index> jit_const_index; @@ -2223,6 +2225,7 @@ std::list<jit_value *> all_values; size_t iterator_count; + size_t short_count; typedef std::map<std::string, jit_variable *> vmap_t; vmap_t vmap;