Reviewers: Kasper Lund, Description: This patch much improves our tracking of whether function is called from within a loop or not. In the past we lost the information if a call site went megamorphic before a lazily compiled callee was called for the first time. Now we track that correctly (this is an issue that affects richards). We still don't manage to track the in-loop state through a constructor call, since constructor calls use LoadICs instead of CallICs. This issue affects delta-blue. So in this patch we assume that lazy compilations that don't happen through a CallIC happen from inside a loop. I have an idea to fix this but this patch is big enough already. With our improved tracking of in-loop state I have switched off the inlining of in-object loads for code that is not in a loop. This benefits compile speed. One issue is that eagerly compiled code now doesn't get the in-object loads inlined. We need to eagerly compile less code to fix this.
Please review this at http://codereview.chromium.org/115744 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/codegen-arm.h M src/arm/codegen-arm.cc M src/arm/ic-arm.cc M src/arm/stub-cache-arm.cc M src/builtins.cc M src/code-stubs.h M src/code-stubs.cc M src/codegen.cc M src/globals.h M src/ia32/codegen-ia32.h M src/ia32/codegen-ia32.cc M src/ia32/ic-ia32.cc M src/ia32/stub-cache-ia32.cc M src/ia32/virtual-frame-ia32.cc M src/ic.h M src/ic.cc M src/objects-inl.h M src/objects.h M src/objects.cc M src/runtime.cc M src/stub-cache.h M src/stub-cache.cc --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
