]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Tighten requirements for non-default optimization flags.
authorMike Pall <mike>
Thu, 25 Apr 2013 22:54:53 +0000 (00:54 +0200)
committerMike Pall <mike>
Thu, 25 Apr 2013 22:54:53 +0000 (00:54 +0200)
FOLD is required for FWD/DSE optimizations.

src/lj_opt_fold.c

index be50bf9784a2781ed88545e1650efa0dbd31b432..664550f165f64d4dc0afdb5980f8cd4fe891dfe6 100644 (file)
@@ -2179,14 +2179,16 @@ TRef LJ_FASTCALL lj_opt_fold(jit_State *J)
     if (!(J->flags & JIT_F_OPT_FOLD) && irm_kind(lj_ir_mode[fins->o]) == IRM_N)
       return lj_opt_cse(J);
 
-    /* Forwarding or CSE disabled? Emit raw IR for loads, except for SLOAD. */
-    if ((J->flags & (JIT_F_OPT_FWD|JIT_F_OPT_CSE)) !=
-                   (JIT_F_OPT_FWD|JIT_F_OPT_CSE) &&
+    /* No FOLD, forwarding or CSE? Emit raw IR for loads, except for SLOAD. */
+    if ((J->flags & (JIT_F_OPT_FOLD|JIT_F_OPT_FWD|JIT_F_OPT_CSE)) !=
+                   (JIT_F_OPT_FOLD|JIT_F_OPT_FWD|JIT_F_OPT_CSE) &&
        irm_kind(lj_ir_mode[fins->o]) == IRM_L && fins->o != IR_SLOAD)
       return lj_ir_emit(J);
 
-    /* DSE disabled? Emit raw IR for stores. */
-    if (!(J->flags & JIT_F_OPT_DSE) && irm_kind(lj_ir_mode[fins->o]) == IRM_S)
+    /* No FOLD or DSE? Emit raw IR for stores. */
+    if ((J->flags & (JIT_F_OPT_FOLD|JIT_F_OPT_DSE)) !=
+                   (JIT_F_OPT_FOLD|JIT_F_OPT_DSE) &&
+       irm_kind(lj_ir_mode[fins->o]) == IRM_S)
       return lj_ir_emit(J);
   }