Browse Source

Bump some limits to accomodate SINK pass.

Mike Pall 13 years ago
parent
commit
bd782cedd5
3 changed files with 3 additions and 3 deletions
  1. 1 1
      doc/ext_ffi_semantics.html
  2. 1 1
      src/lj_crecord.c
  3. 1 1
      src/lj_def.h

+ 1 - 1
doc/ext_ffi_semantics.html

@@ -1130,7 +1130,7 @@ suboptimal performance, especially when used in inner loops:
 <li>Table initializers.</li>
 <li>Initialization of nested <tt>struct</tt>/<tt>union</tt> types.</li>
 <li>Allocations of variable-length arrays or structs.</li>
-<li>Allocations of C&nbsp;types with a size &gt; 64&nbsp;bytes or an
+<li>Allocations of C&nbsp;types with a size &gt; 128&nbsp;bytes or an
 alignment &gt; 8&nbsp;bytes.</li>
 <li>Conversions from lightuserdata to <tt>void&nbsp;*</tt>.</li>
 <li>Pointer differences for element sizes that are not a power of

+ 1 - 1
src/lj_crecord.c

@@ -654,7 +654,7 @@ static void crec_alloc(jit_State *J, RecordFFData *rd, CTypeID id)
   CTInfo info = lj_ctype_info(cts, id, &sz);
   CType *d = ctype_raw(cts, id);
   TRef trid;
-  if (sz == 0 || sz > 64 || (info & CTF_VLA) || ctype_align(info) > CT_MEMALIGN)
+  if (!sz || sz > 128 || (info & CTF_VLA) || ctype_align(info) > CT_MEMALIGN)
     lj_trace_err(J, LJ_TRERR_NYICONV);  /* NYI: large/special allocations. */
   trid = lj_ir_kint(J, id);
   /* Use special instruction to box pointer or 32/64 bit integer. */

+ 1 - 1
src/lj_def.h

@@ -80,7 +80,7 @@ typedef unsigned int uintptr_t;
 
 /* JIT compiler limits. */
 #define LJ_MAX_JSLOTS	250		/* Max. # of stack slots for a trace. */
-#define LJ_MAX_PHI	32		/* Max. # of PHIs for a loop. */
+#define LJ_MAX_PHI	64		/* Max. # of PHIs for a loop. */
 #define LJ_MAX_EXITSTUBGR	16	/* Max. # of exit stub groups. */
 
 /* Various macros. */