Closed Bug 555425 Opened 16 years ago Closed 16 years ago

JM: Remove sp updates

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dvander, Unassigned)

References

Details

Attachments

(1 file)

Attached patch WIPSplinter Review
This patch removes sp updates in JIT'd code. For example, JSOP_ZERO might go from: mov [rbx], 1 add rbx, 8 To: mov [rbx + 0xOFFSET], 1 Unfortunately, this approach seems to have slowed down SunSpider by just a hair (consistent 5ms) and v8 more. Slow paths need to dump out state to |cx| and now the previously cheap MOV of sp into cx->regs->sp is now a more expensive LEA. Fortunately, a microbenchmark where we don't hit slow paths suggests that this patch is in fact a win (not a big one, but measurable). This probably means that we're spending a lot of time - too much time - in stub calls. In the meantime, I'm going to try and reduce the stubcall overhead.
I pushed this early because it's got refactoring that I want now rather than later. Also re-measuring it looks like a slight win JM-only. The 5ms JM+TM perf loss will go away as stub calls get smarter. http://hg.mozilla.org/users/danderson_mozilla.com/jaegermonkey/rev/9116c7f46321
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: