aboutsummaryrefslogtreecommitdiff
path: root/src/lj_trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_trace.c')
-rw-r--r--src/lj_trace.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c
index d1883ad2..ce313df3 100644
--- a/src/lj_trace.c
+++ b/src/lj_trace.c
@@ -491,7 +491,8 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud)
491 491
492 case LJ_TRACE_END: 492 case LJ_TRACE_END:
493 J->loopref = 0; 493 J->loopref = 0;
494 if ((J->flags & JIT_F_OPT_LOOP) && J->cur.link == J->curtrace) { 494 if ((J->flags & JIT_F_OPT_LOOP) &&
495 J->cur.link == J->curtrace && J->framedepth + J->retdepth == 0) {
495 setvmstate(J2G(J), OPT); 496 setvmstate(J2G(J), OPT);
496 lj_opt_dce(J); 497 lj_opt_dce(J);
497 if (lj_opt_loop(J)) { /* Loop optimization failed? */ 498 if (lj_opt_loop(J)) { /* Loop optimization failed? */