Closed
Bug 586886
Opened 15 years ago
Closed 15 years ago
JM: Remove VMFrame::inlineCallCount
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: dvander, Assigned: dvander)
References
Details
Attachments
(3 files, 1 obsolete file)
13.76 KB,
patch
|
Details | Diff | Splinter Review | |
6.29 KB,
patch
|
Details | Diff | Splinter Review | |
10.88 KB,
patch
|
Details | Diff | Splinter Review |
We can remove inlineCallCount by combining it with the stack quota check, simplifying the stack quota check at the same time.
![]() |
Assignee | |
Comment 1•15 years ago
|
||
Precursor patch removes correctness dependency on iCC, introducing VMFrame::entryFp which is the stopping point for unwinding frames.
It also cleans up a bunch of confusing invariants in InvokeHelpers.
![]() |
Assignee | |
Comment 2•15 years ago
|
||
Attachment #465565 -
Attachment is obsolete: true
![]() |
Assignee | |
Comment 3•15 years ago
|
||
Largest frame size on SS is 656 bytes, average is 184.
Largest frame size on v8 is 1344 bytes, average is 175.
Multiplying our current max-inline-callcount (3000) by these numbers, either as-is or generously increased, results in a huge portion of our contiguous stack.
On Windows, we still have to check the committed region of the contiguous stack. Luke points out that we can check MIN(committed, maxDepth) to take a slow path, and figure out whether we've over-recursed or just need to commit more from there. This will keep the fast single-check on Windows without reporting more memory usage.
![]() |
Assignee | |
Comment 4•15 years ago
|
||
![]() |
Assignee | |
Comment 5•15 years ago
|
||
![]() |
Assignee | |
Comment 6•15 years ago
|
||
So far this is a 1% SS win, 5% v8 win on my machine.
![]() |
Assignee | |
Comment 7•15 years ago
|
||
On graphs this was a 1% SS win, 3% v8 win.
http://hg.mozilla.org/projects/jaegermonkey/rev/d7b81bd995c3
http://hg.mozilla.org/projects/jaegermonkey/rev/6a6a72c1961a
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment 8•15 years ago
|
||
According to "hg bisect", d7b81bd995c3 broke most of the trace-tests for ARM.
Comment 9•15 years ago
|
||
ARM fixes: http://hg.mozilla.org/projects/jaegermonkey/rev/0bb64c9ca0b6
The VMFrame construction code in JaegerTrampoline hadn't been updated for ARM.
You need to log in
before you can comment on or make changes to this bug.
Description
•