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;