JSStackFrame Evisceration: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 1: Line 1:
== Removing JSStackFrame members / things on the call path ==
This would leave sizeof(JSStackFrame) == 6 words.
This would leave sizeof(JSStackFrame) == 6 words.
Sorted in estimated order of benefit / difficulty:
Sorted in estimated order of benefit / difficulty:
Line 8: Line 6:
| '''Task'''  
| '''Task'''  
| '''Size (wks)'''  
| '''Size (wks)'''  
| '''Candidate Assignee'''
| '''Assignee'''
|-
|-
| [https://bugzilla.mozilla.org/show_bug.cgi?id=539144 argc/argv]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=539144 argc/argv]
Line 36: Line 34:
| [https://bugzilla.mozilla.org/show_bug.cgi?id=540675 callerVersion]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=540675 callerVersion]
| .5
| .5
|
| -
| -
| [https://bugzilla.mozilla.org/show_bug.cgi?id=535912 blockChain]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=535912 blockChain]

Revision as of 06:22, 9 July 2010

This would leave sizeof(JSStackFrame) == 6 words. Sorted in estimated order of benefit / difficulty:

Task Size (wks) Assignee
argc/argv 1 lw
thisv (depends on argv) .5 lw
fun, script (depend on thisv) .5 lw
ncode (merge with savedPC) .1 dvander
displaySave - remove display optimization 1 cdleary
hookData (just use js::Invoke and use a local variable) .5
callerVersion .5 - blockChain 1
rval 1
annotation ? (0, once we can drop the callers of JS_{Get,Set}FrameAnnotation in nsScriptSecurityManager.cpp)
imacpc (use some side stack, or push a jsval (like JSOP_GOSUB) 1

Remove from call path

  • PIC for fast natives calls
  • PIC/fast path for interpreted inline call
  • Remove empty script check (not just a predictable branch)