• erik.corry@gmail.com's avatar
    This patch much improves our tracking of whether function is · 01f7c87f
    erik.corry@gmail.com authored
    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.
    Review URL: http://codereview.chromium.org/115744
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    01f7c87f
globals.h 18.4 KB