[Webkit-unassigned] [Bug 49635] New: Profiler implementation is fragile

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 16 17:43:49 PST 2010


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

           Summary: Profiler implementation is fragile
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: barraclough at apple.com


The profile presently requires the exception handling mechanism to explicitly remove all stack frames that are exited during the exception unwind mechanism.  This is fragile in a number of ways:
 * We have to change bytecode register allocation when compiling code to run when profiling, to preserve the callee function (this is also required to call did_call after the call has returned).
 * In the JIT we have to maintain additional data structures (CodeBlock::RareData::m_functionRegisterInfos) to map back to the register containing the callee.
 * In the interpreter we use 'magic values' to offset into the instruction stream to rediscover the register containing the function.

Instead, move profiling into the head and tail of functions.
 * This correctly accounts the cost of the call itself to the caller.
 * This allows us to access the callee function object from the callframe.
 * This means that at the point a call is made we can track the stack depth on the ProfileNode.
 * When unwinding we can simply report the depth at which the exception is being handled - all call frames above this level are freed.

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