Permalink
Browse files

If a parent call frame is jitted, compile the method from there

Improves the new Richards benchmark with the following numbers:

Before:
=== bin/rbx ===
        #main(10000)       76.1 (±3.9%) i/s -        384 in   5.057462s

After:
=== bin/rbx ===
        #main(10000)      109.7 (±4.6%) i/s -        552 in   5.041215s
  • Loading branch information...
1 parent ca6f779 commit d7bc796f1c5a9010e001401da34dcbda0bd6d160 @dbussink dbussink committed Feb 25, 2013
Showing with 4 additions and 0 deletions.
  1. +4 −0 vm/llvm/state.cpp
View
@@ -785,6 +785,10 @@ namespace rubinius {
return callee;
}
+ if(call_frame->jitted_p() || call_frame->inline_method_p()) {
+ return callee;
+ }
+
if(mcode->inline_cache_count() > eMaxInlineSendCount) {
if(debug_search) {
std::cout << "JIT: STOP. reason: high send count" << std::endl;

0 comments on commit d7bc796

Please sign in to comment.