Summary: | Snippefy op_negate for the baseline JIT. | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Mark Lam <mark.lam> | ||||||||||||
Component: | JavaScriptCore | Assignee: | Mark Lam <mark.lam> | ||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||
Severity: | Normal | CC: | benjamin, fpizlo, ggaren, keith_miller, msaboff, saam, webkit-bug-importer | ||||||||||||
Priority: | P2 | ||||||||||||||
Version: | WebKit Local Build | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Bug Depends on: | 152453 | ||||||||||||||
Bug Blocks: | |||||||||||||||
Attachments: |
|
Description
Mark Lam
2015-12-18 15:50:10 PST
Created attachment 267756 [details]
proposed patch.
Benchmarking shows that perf is neutral when the DFG is enabled. I still need to run perf numbers for when the DFG is disabled.
Created attachment 267757 [details]
x86_64 benchmark result.
Created attachment 267758 [details]
x86 benchmark result.
Created attachment 267769 [details]
x86_64 benchmark result without DFG.
Created attachment 267770 [details]
x86 benchmark result without DFG.
All perf results are neutral. This patch is ready for a review. Comment on attachment 267756 [details] proposed patch. View in context: https://bugs.webkit.org/attachment.cgi?id=267756&action=review > Source/JavaScriptCore/jit/JITNegGenerator.cpp:56 > + m_endJumpList.append(jit.jump()); Why do you have a "m_endJumpList" used by the user of this object?... > Source/JavaScriptCore/jit/JITNegGenerator.cpp:67 > +#endif ...Instead of linking the jump here after the Double case? Comment on attachment 267756 [details] proposed patch. View in context: https://bugs.webkit.org/attachment.cgi?id=267756&action=review >> Source/JavaScriptCore/jit/JITNegGenerator.cpp:67 >> +#endif > > ...Instead of linking the jump here after the Double case? This is to enable an optimization. If you search in DFGSpeculativeJIT.cpp for "gen.endJumpList().append(m_jit.jump());", you will see cases where the DFG wants to place some slow path code immediately after snippets emit their code. By having an endJumpList(), we can avoid the cases where the internal of snippets jump to the snippet end, only to jump over some slow path code in the client to the real end point. The endJumpList allows that the snippet code to jump to the real end point as determined by the client. Thanks for the review. Landed in r194363: <http://trac.webkit.org/r194363>. |