JSStackFrame Evisceration: Difference between revisions

no edit summary
No edit summary
Line 1: Line 1:
This would leave sizeof(JSStackFrame) == 6 words.
This would leave sizeof(JSStackFrame) == 6 words.
=== Members to remove ===
Sorted in estimated order of benefit / difficulty:
Sorted in estimated order of benefit / difficulty:


Line 7: Line 10:
| '''Size (wks)'''  
| '''Size (wks)'''  
| '''Assignee'''
| '''Assignee'''
| '''Note'''
|-
|-
| [https://bugzilla.mozilla.org/show_bug.cgi?id=539144 argc/argv]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=539144 argc/argv]
| 1
| 1.5
| lw
| lw
| Requires CallSegment (CallStack) changes, educate decompiler
|-
|-
| [https://bugzilla.mozilla.org/show_bug.cgi?id=557375 thisv] (depends on argv)
| [https://bugzilla.mozilla.org/show_bug.cgi?id=557375 thisv]
| .5
| .5
| lw
| lw
| Depends on argv/argc
|-
|-
| fun, script (depend on thisv)
| fun, script
| .5
| .5
| lw
| lw
| Depends on thisv
|-
|-
| ncode (merge with savedPC)
| ncode
| .1
| .1
| dvander
| dvander
| Merge it with savedPC in method-jit
|-
|-
| displaySave - remove display optimization
| displaySave
| 1
| 1
| cdleary
| cdleary
| Remove display optimization for great justice!
|-
|-
| hookData (just use js::Invoke and use a local variable)
| hookData
| .5
| .5
|  
|
| Just use js::Invoke and use a local variable
|-
| annotation
| 0
| sayrer
| Trivial if we can remove callers in nsScriptSecurityManager.
|-
|-
| [https://bugzilla.mozilla.org/show_bug.cgi?id=540675 callerVersion]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=540675 callerVersion]
| .5
| .5
|
|
| -
| Mostly the challenge is just understanding the actual use case.
|-
| [https://bugzilla.mozilla.org/show_bug.cgi?id=535912 blockChain]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=535912 blockChain]
| 1
| 1
|  
|  
| A bit tricky
|-
|-
| [https://bugzilla.mozilla.org/show_bug.cgi?id=550639 rval]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=550639 rval]
| 1
| 1
|
|
| Tricky
|-
|-
| annotation
| imacpc
| ? (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
| 1
|
|
| Perhaps push on the expression stack like JSOP_GOSUB does
|}
|}


== Remove from call path ==
=== Method-jit changes ===


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

edits