From: Mike Pall Date: Thu, 25 Apr 2013 22:54:53 +0000 (+0200) Subject: Tighten requirements for non-default optimization flags. X-Git-Tag: v2.0.2~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=895a8bc91f1dc0c76f9cc4ae24f11bcb2ba121c3;p=thirdparty%2FLuaJIT.git Tighten requirements for non-default optimization flags. FOLD is required for FWD/DSE optimizations. --- diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index be50bf97..664550f1 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c @@ -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); }