aboutsummaryrefslogtreecommitdiff
path: root/src/lj_opt_mem.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lj_opt_mem.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lj_opt_mem.c b/src/lj_opt_mem.c
index 81184f14..d6a419e4 100644
--- a/src/lj_opt_mem.c
+++ b/src/lj_opt_mem.c
@@ -364,7 +364,10 @@ TRef LJ_FASTCALL lj_opt_dse_ahstore(jit_State *J)
364 /* Different value: try to eliminate the redundant store. */ 364 /* Different value: try to eliminate the redundant store. */
365 if (ref > J->chain[IR_LOOP]) { /* Quick check to avoid crossing LOOP. */ 365 if (ref > J->chain[IR_LOOP]) { /* Quick check to avoid crossing LOOP. */
366 IRIns *ir; 366 IRIns *ir;
367 /* Check for any intervening guards (includes conflicting loads). */ 367 /* Check for any intervening guards (includes conflicting loads).
368 ** Note that lj_tab_keyindex and lj_vm_next don't need guards,
369 ** since they are followed by at least one guarded VLOAD.
370 */
368 for (ir = IR(J->cur.nins-1); ir > store; ir--) 371 for (ir = IR(J->cur.nins-1); ir > store; ir--)
369 if (irt_isguard(ir->t) || ir->o == IR_ALEN) 372 if (irt_isguard(ir->t) || ir->o == IR_ALEN)
370 goto doemit; /* No elimination possible. */ 373 goto doemit; /* No elimination possible. */