Changes

Jump to: navigation, search

JaegerMonkey

543 bytes removed, 19:37, 4 February 2010
no edit summary
Once this is in place, we can then make it faster and faster by adding more optimizations.
 
= Status =
 
We have imported the Nitro assembler and verified that it works with a basic test harness and the beginnings of the compiler.
 
We have almost finished the JS stack cleanup and simplification. See [https://bugzilla.mozilla.org/show_bug.cgi?id=536275 Bug 536275].
 
Work has begun on the compiler. See [https://bugzilla.mozilla.org/show_bug.cgi?id=543637 Bug 543637]
= Design Decisions =
The layout of the unboxed stack will be the same in the interpreter or on trace. To get this, we mostly have to delete or move out of band the extra fields in JSStackFrame. We will need to reorder a bit too. Oncewe have that, to enter trace, we do no work, and to leave trace, we just memcpy typemaps into the interpreter type tags stack.
 
= Planned First Steps =
 
The first two chunks of work are to get the stack frame layouts to match, and to import the Nitro assembler. We should be able to do these in parallel, but they block most further work.
 
Luke is already starting the stack frame layout work. We hope to be able to mostly complete that in a week-long "sprint" in early/mid January. By "sprint", I mean focusing as much as possible on that task for the week,and closely collaborating with each other.
 
After that, the next step is to get up a basic call-threaded system that doesn't necessarily inline much or optimize anything. The main pieces here are to figure out how to track and manage the compiled code, anddo the easy thing to get control flow and calling stub functions working.We hope to be able to do a lot of this in one or two further sprints.
 
At this point, we can start adding optimizations, and this should parallelize well.
= Planned Optimizations =
313
edits

Navigation menu