[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