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