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
-~----------~----~----~----~------~----~------~--~---

Reply via email to