diff src/interp-core/jit-typeinfo.cc @ 15124:0464e3ceb85b

Skip functions when resolving end context in JIT * src/interp-core/jit-ir.cc (jit_magic_end::resolve_context): Skip functions. * src/interp-core/jit-typeinfo.cc (jit_type::jit_type): Add askip_paren parameter. (jit_typeinfo::addbuiltin): Skip end resolution for builtin functions. * src/interp-core/jit-typeinfo.h (jit_type::skip_paren): New function. (jit_typeinfo::new_type): Add skip_paren argument.
author Max Brister <max@2bass.com>
date Tue, 07 Aug 2012 14:59:58 -0500
parents d29f2583cf7b
children bd6bb87e2bea
line wrap: on
line diff
--- a/src/interp-core/jit-typeinfo.cc	Tue Aug 07 09:01:02 2012 -0700
+++ b/src/interp-core/jit-typeinfo.cc	Tue Aug 07 14:59:58 2012 -0500
@@ -500,9 +500,9 @@
 
 // -------------------- jit_type --------------------
 jit_type::jit_type (const std::string& aname, jit_type *aparent,
-                    llvm::Type *allvm_type, int aid) :
+                    llvm::Type *allvm_type, bool askip_paren, int aid) :
   mname (aname), mparent (aparent), llvm_type (allvm_type), mid (aid),
-  mdepth (aparent ? aparent->mdepth + 1 : 0)
+  mdepth (aparent ? aparent->mdepth + 1 : 0), mskip_paren (askip_paren)
 {
   std::memset (msret, 0, sizeof (msret));
   std::memset (mpointer_arg, 0, sizeof (mpointer_arg));
@@ -1800,9 +1800,9 @@
 
 jit_type*
 jit_typeinfo::new_type (const std::string& name, jit_type *parent,
-                        llvm::Type *llvm_type)
+                        llvm::Type *llvm_type, bool skip_paren)
 {
-  jit_type *ret = new jit_type (name, parent, llvm_type, next_id++);
+  jit_type *ret = new jit_type (name, parent, llvm_type, skip_paren, next_id++);
   id_to_type.push_back (ret);
   return ret;
 }
@@ -1918,7 +1918,7 @@
 void
 jit_typeinfo::add_builtin (const std::string& name)
 {
-  jit_type *btype = new_type (name, any, any->to_llvm ());
+  jit_type *btype = new_type (name, any, any->to_llvm (), true);
   builtins[name] = btype;
 
   octave_builtin *ov_builtin = find_builtin (name);