diff options
Diffstat (limited to '')
-rw-r--r-- | src/lj_opt_mem.c | 5 |
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. */ |