diff options
author | Mike Pall <mike> | 2010-11-25 11:38:48 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-11-25 11:42:17 +0100 |
commit | 18fbf86c9e6cb370605087a163605ba53b140f47 (patch) | |
tree | 9db05276ab73084161dfae678dd497b028e4cc14 /src/lj_record.c | |
parent | 73384567962fa8ec7759dc460e1abbb1d388d77d (diff) | |
download | luajit-18fbf86c9e6cb370605087a163605ba53b140f47.tar.gz luajit-18fbf86c9e6cb370605087a163605ba53b140f47.tar.bz2 luajit-18fbf86c9e6cb370605087a163605ba53b140f47.zip |
Improve unrolling heuristics for non-looping inner loops.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 58b02a43..621311c1 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -426,7 +426,8 @@ static int innerloopleft(jit_State *J, const BCIns *pc) | |||
426 | ptrdiff_t i; | 426 | ptrdiff_t i; |
427 | for (i = 0; i < PENALTY_SLOTS; i++) | 427 | for (i = 0; i < PENALTY_SLOTS; i++) |
428 | if (mref(J->penalty[i].pc, const BCIns) == pc) { | 428 | if (mref(J->penalty[i].pc, const BCIns) == pc) { |
429 | if (J->penalty[i].reason == LJ_TRERR_LLEAVE && | 429 | if ((J->penalty[i].reason == LJ_TRERR_LLEAVE || |
430 | J->penalty[i].reason == LJ_TRERR_LINNER) && | ||
430 | J->penalty[i].val >= 2*PENALTY_MIN) | 431 | J->penalty[i].val >= 2*PENALTY_MIN) |
431 | return 1; | 432 | return 1; |
432 | break; | 433 | break; |