JSStackFrame Evisceration

From MozillaWiki
Jump to: navigation, search

This leaves sizeof(JSStackFrame) == 10 words (11 on 32-bit), but we only need to initialize 4 of those words on the common call path; the rest can be lazily (or never) initialized.

Members to remove

Sorted in estimated order of benefit / difficulty:

Task Size (wks) Assignee Note
Xargc/argv/fun/script/thisv 3 lw Requires StackSegment changes.
Xncode 3 Merge it with savedPC in method-jit. Requires building map HW PC --> bytecode (which we sortof already heave
scopeChain .5
XdisplaySave 1 cdleary Remove display optimization for great justice!
XhookData .1 lw Lazily initialize using JSStackFrame::flags. Included in bug 539144.
Xannotation 3 sayrer Trivial if we can remove callers in nsScriptSecurityManager. Alas, that is not trivial, so this is going to take a while. For now, we lazily initialize which gives practically all the benefit.
XcallerVersion .5 cdleary Mostly the challenge is just understanding the actual use case.
XblockChain 1 wmmcloskey A bit tricky
rval 1 Lazily initialize with a JSStackFrame::flags bit and avoid ever writing in the hot JM call/return paths.
Ximacpc 1 cdleary Leave uninitialized in call path and use JSStackFrame::flags to indicate whether there is or is not an imacpc.