IonMonkey: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Development: Document that IonMonkey is enabled by default.)
(Update links)
Line 11: Line 11:
=Development=
=Development=


*Source code: [http://hg.mozilla.org/projects/ionmonkey http://hg.mozilla.org/projects/ionmonkey]
*Tracking Bug: [https://bugzilla.mozilla.org/show_bug.cgi?id=650180 Bug 650180]
*TBPL: [http://tbpl.mozilla.org/?tree=Ionmonkey http://tbpl.mozilla.org/?tree=Ionmonkey]
*Source code: [http://hg.mozilla.org/mozilla-central/file/tip/js/src/ion http://hg.mozilla.org/mozilla-central/file/tip/js/src/ion]


To get started, see the [https://developer.mozilla.org/En/SpiderMonkey/Build_Documentation Build Documentation for SpiderMonkey]. Use the '-h' shell option to see all of IonMonkey's options.
To get started, see the [https://developer.mozilla.org/En/SpiderMonkey/Build_Documentation Build Documentation for SpiderMonkey]. Use the '-h' shell option to see all of IonMonkey's options.
Line 25: Line 25:
*[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.

Revision as of 16:55, 16 May 2013

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.

Planning

See Platform/Features/IonMonkey for IonMonkey's planning page.

Design

See IonMonkey/Overview for an overview of the IonMonkey architecture and its files.

Development

To get started, see the Build Documentation for SpiderMonkey. Use the '-h' shell option to see all of IonMonkey's options.

Currently, IonMonkey is enabled by default for those processor architectures it supports. Use '--disable-ion' to enable it.

Debugging

A few tools exist to help debug IonMonkey.

  • Debug spew, controlled by the environment variable IONFLAGS. Set it to help to see available options.
  • Instruction spew, via setting the environment variable JMFLAGS to insns.
  • c1visualizer IonMonkey writes a spew file to /tmp/ion.cfg, which can be imported into the c1visualizer. It can display a clickable control-flow graph, MIR, LIR, and liveness intervals for LSRA.
  • iongraph by Sean Stangl, using IonMonkey's JSON spew.
  • Some gdb tricks related to IonMonkey are listed on the Hacking Tips page of spider monkey.