313
edits
| Line 24: | Line 24: | ||
== v8-earley-boyer == | == v8-earley-boyer == | ||
This is a mostly-mechanical Scheme->JS translation of two programs: earley, which does parsing, and boyer, which is a constraint solver. It has functions named 'sc_Pair' (like cons), 'sc_list', 'sc_append', and so on; the three just given are the ones that account for the most time. | |||
Being based on Scheme, this program creates a lot of small objects, so fast object allocation and generational GC are very important. Inlined constructors would also help. | |||
sc_list and sc_append use |arguments|, but only locally, so making this faster by not creating an arguments object would help. Same goes for call objects in closures. | |||
The extensive use of closures also generate a lot of CALLNAME ops, so those need to be fast. | |||
There is a lot of tail recursion, and also general tail calls. | |||
See also [https://bugzilla.mozilla.org/show_bug.cgi?id=642001 bug 642001]. | |||
== v8-raytrace == | == v8-raytrace == | ||
edits