Closed
Bug 513007
Opened 15 years ago
Closed 15 years ago
asm_restore can rematerialize stack parameters instead of spilling them
Categories
(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: edwsmith, Assigned: edwsmith)
References
Details
Attachments
(1 file)
1.07 KB,
patch
|
n.nethercote
:
review+
rreitmai
:
superreview+
|
Details | Diff | Splinter Review |
Currently on i386, we use CDECL calling convention for jit-compiled AS3 methods, which puts all the parameters on the stack. one parameter (env) is accessed frequently and tends to spill in most functions. asm_restore() supports rematerializing various instructions (e.g. constants) instead of spilling them. We could rematerializing incoming stack parameters since we can load them from their stack position relative to EBP, saving a few spills and a bit of stack space. If we switched to FASTCALL for all calls then it would obviate the need for param-spilling in tamarin's use of nanojit (but this mod still wouldn't hurt)
Assignee | ||
Comment 1•15 years ago
|
||
Assignee: nobody → edwsmith
Attachment #397390 -
Flags: superreview?(rreitmai)
Attachment #397390 -
Flags: review?(nnethercote)
Updated•15 years ago
|
Attachment #397390 -
Flags: superreview?(rreitmai) → superreview+
Comment 2•15 years ago
|
||
Comment on attachment 397390 [details] [diff] [review] rematerialize stack arguments instead of spilling It would be helpful to document the computation of d. Might also be time to introduce enums for paramKind() , if you don't object to extending the bounds of this patch.
Updated•15 years ago
|
Attachment #397390 -
Flags: review?(nnethercote) → review+
Assignee | ||
Comment 3•15 years ago
|
||
will add better docs. bug 513468 created for the enum. (good idea).
Assignee | ||
Comment 4•15 years ago
|
||
pushed http://hg.mozilla.org/tamarin-redux/rev/d138e8c6e0cf
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment 5•15 years ago
|
||
Resolved fixed engineering / work item that has been pushed. Setting status to verified.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•