: Etherpad users! We are developing an extension that will allow you to create pages from etherpads quickly and easily. Please visit our sandbox and help us test it.

IonMonkey

From MozillaWiki
Jump to: navigation, search

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 disable 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.