summaryrefslogtreecommitdiff
path: root/src/lj_opt_loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_opt_loop.c')
-rw-r--r--src/lj_opt_loop.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lj_opt_loop.c b/src/lj_opt_loop.c
index f9a2a808..90ab1b6f 100644
--- a/src/lj_opt_loop.c
+++ b/src/lj_opt_loop.c
@@ -310,7 +310,13 @@ static void loop_unroll(jit_State *J)
310/* Undo any partial changes made by the loop optimization. */ 310/* Undo any partial changes made by the loop optimization. */
311static void loop_undo(jit_State *J, IRRef ins) 311static void loop_undo(jit_State *J, IRRef ins)
312{ 312{
313 ptrdiff_t i;
313 lj_ir_rollback(J, ins); 314 lj_ir_rollback(J, ins);
315 for (i = 0; i < BPROP_SLOTS; i++) { /* Remove backprop. cache entries. */
316 BPropEntry *bp = &J->bpropcache[i];
317 if (bp->val >= ins)
318 bp->key = 0;
319 }
314 for (ins--; ins >= REF_FIRST; ins--) { /* Remove flags. */ 320 for (ins--; ins >= REF_FIRST; ins--) { /* Remove flags. */
315 IRIns *ir = IR(ins); 321 IRIns *ir = IR(ins);
316 irt_clearphi(ir->t); 322 irt_clearphi(ir->t);