This work is meant to make a compromise between generated code quality and compilation speed to have good performances in rapid prototyping/development scenario.
Do you have more precise measurements on - the relative costs of the successive transformations during native compilation (including external linking etc.)? Which proportion of time is currently used for register allocation? - the performance cost of this new allocator in the generated code? I suppose the results may vary between different architectures (eg. x86 is probably more sensitive to good allocation decisions than x86_64). On Mon, Aug 1, 2011 at 4:53 PM, Benedikt Meurer <[email protected]> wrote: > Hello, > > As mentioned earlier we have a student working on an implementation of the > Linear Scan Register Allocator [1] for ocamlopt (and thereby ocamlnat). It > took some time, but now there's a first working patch which looks promising. > This work is done by Marcell Fischbach as part of his diploma thesis. The > idea is to use the linear scan algorithm to drive the register allocation in > the native top-level ocamlnat at some point, as suggested by Fabrice Le > Fessant [2]. > > Marcell is now working to implement a proof-of-concept of an inline assembler > for ocamlnat on i386 based on code from Alain Frisch an Fabrice Le Fessant. > The result will also be contributed once ready, and will be used to > effectively compare ocamlnat and the byte-code ocaml top-level. > > The linear scan implementation reuses as much of the existing ocamlopt > functionality as possible, so additional maintenance overhead should be > manageable. Comments and suggestions are welcome of course. Please keep > Marcell CC'ed with any replies as he's not subscribed to the list. > > greets, > Benedikt > > > [1] http://portal.acm.org/citation.cfm?id=330250 > [2] > http://caml.inria.fr/pub/ml-archives/caml-list/2010/11/a1b0ed0934ff51df4ac07c5e9da6e9d6.en.html > > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > > -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
