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 | |
| 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')
| -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; |
