[Webkit-unassigned] [Bug 89752] New: DFG tier-up should happen in prologues, not epilogues

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jun 22 02:22:58 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=89752

           Summary: DFG tier-up should happen in prologues, not epilogues
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: fpizlo at apple.com


This change has two outcomes:

1) Slightly reduces the likelihood that a function will be optimized both standalone and via inlining.  Previously, if you had a call sequence like foo() calls bar() exactly once, and nobody else calls bar(), then bar() would get optimized first (because it returns first) and then foo() gets optimized.  If foo() can inline bar() then that means that bar() gets optimized twice.  But now, if we optimize in prologues, then foo() will be optimized first.  If it inlines bar(), that means that there will no longer be any calls to bar().

2) It lets us kill some code in JITStubs.  Epilogue tier-up was very different from loop tier-up, since epilogue tier-up should not attempt OSR.  But prologue tier-up requires OSR (albeit really easy OSR since it's the top of the compilation unit), so it becomes just like loop tier-up.  As a result, we now have one optimizatio hook (cti_optimize) instead of two (cti_optimize_from_loop and cti_optimize_from_ret).

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list