Confirmed users
24
edits
Lazyparser (talk | contribs) (correct ionmonkey's src path.) |
No edit summary |
||
| Line 1: | Line 1: | ||
IonMonkey is the next generation JavaScript JIT compiler for SpiderMonkey. It is a whole-method JIT with the ability to perform type specialization. It has two goals: a cleanly engineered design that makes future optimization work possible, and excellent performance. | IonMonkey is the next generation JavaScript JIT compiler for SpiderMonkey. It is a whole-method JIT with the ability to perform type specialization. It has two goals: a cleanly engineered design that makes future optimization work possible, and excellent performance. | ||
=Design= | =Design= | ||
| Line 11: | Line 7: | ||
=Development= | =Development= | ||
* | *Open bugs: [https://bugzilla.mozilla.org/buglist.cgi?component=JavaScript%20Engine%3A%20JIT&product=Core&bug_status=__open__&list_id=13273018 link] | ||
*Source code: [http://hg.mozilla.org/mozilla-central/file/tip/js/src/jit http://hg.mozilla.org/mozilla-central/file/tip/js/src/jit] | *Source code: [http://hg.mozilla.org/mozilla-central/file/tip/js/src/jit http://hg.mozilla.org/mozilla-central/file/tip/js/src/jit] | ||
| Line 17: | Line 13: | ||
Currently, IonMonkey is enabled by default for those processor architectures it supports. Use '--disable-ion' to disable it. | Currently, IonMonkey is enabled by default for those processor architectures it supports. Use '--disable-ion' to disable it. | ||
=Contributing to IonMonkey= | |||
IonMonkey can always get improved in various ways. | |||
* Opening bugs about performance issues and reporting regressions | |||
* Implementing new optimization passes | |||
* Improving existing optimizations passes | |||
* Improving the documentation on this wiki | |||
The bug list of [https://bugzilla.mozilla.org/buglist.cgi?component=JavaScript%20Engine%3A%20JIT&product=Core&bug_status=__open__&list_id=13273018 open bugs] is quite huge and range from small changes to big feature requests. As a start one can look at the [https://bugzilla.mozilla.org/buglist.cgi?list_id=13273032&o1=isnotempty&f1=bug_mentor&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&component=JavaScript%20Engine%3A%20JIT&product=Core list of bugs which has mentor]. | |||
If you got any questions, please hop on [http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23ionmonkey #ionmonkey] or [http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23jsapi #jsapi] and we will gladly help out. | |||
=Debugging= | =Debugging= | ||
| Line 22: | Line 30: | ||
A few tools exist to help debug IonMonkey. | A few tools exist to help debug IonMonkey. | ||
*Debug spew, controlled by the environment variable <tt>IONFLAGS</tt>. Set it to <tt>help</tt> to see available options. | *Debug spew, controlled by the environment variable <tt>IONFLAGS</tt>. Set it to <tt>help</tt> to see available options. | ||
*[http://java.net/projects/c1visualizer/ c1visualizer] IonMonkey writes a spew file to <tt>/tmp/ion.cfg</tt>, which can be imported into the c1visualizer. It can display a clickable control-flow graph, MIR, LIR, and liveness intervals for LSRA. | *[http://java.net/projects/c1visualizer/ c1visualizer] IonMonkey writes a spew file to <tt>/tmp/ion.cfg</tt>, which can be imported into the c1visualizer. It can display a clickable control-flow graph, MIR, LIR, and liveness intervals for LSRA. | ||
*[https://github.com/sstangl/iongraph iongraph] by Sean Stangl, using IonMonkey's JSON spew. | *[https://github.com/sstangl/iongraph iongraph] by Sean Stangl, using IonMonkey's JSON spew. | ||
*Some gdb tricks related to IonMonkey are listed on the [https://developer.mozilla.org/en-US/docs/SpiderMonkey/Hacking_Tips Hacking Tips page] of spider monkey. | *Some gdb tricks related to IonMonkey are listed on the [https://developer.mozilla.org/en-US/docs/SpiderMonkey/Hacking_Tips Hacking Tips page] of spider monkey. | ||