On Mon, 22 Apr 2002, Simon Peyton-Jones wrote: > Actually, GHC does automatically specialise for all types > at which the function is called in that module, but it doesn't do > it across modules. Why not? Because it compiles bottom-up, > whereas the specialisation info is really top-down. > > Have often thought that we could spit out specialisation info > into .spec files, and have some separate program to eat up > all the .spec files and produce specialisation pragmas for > all the modules... but never got around to it. It would produce > quite a worthwhile speedup though, if anyone feels inclined to > tackle it. > > (If anyone does, I have a good plan of action in my head.)
I advise anyone thinking of doing this to read: F. Bueno, M. Garcia de la Banda, M. Hermenegildo, K. Marriott, G. Puebla, and P. Stuckey. A model for inter-module analysis and optimizing compilation. In Kung-Kiu Lau, editor, Tenth International Workshop on Logic-based Program Synthesis and Transformation, LNCS 2042, pages 86--102. Springer-Verlag, July 2001. www.cs.mu.oz.au/~pjs/papers/lopstr2000.ps.gz The examples are all logic programming based, but much should be applicable to functional programs. And if that doesn't scare you off, maybe this will: Nicholas Nethercote. The Analysis Framework of HAL. Master's Thesis, University of Melbourne, September 2001. www.cl.cam.ac.uk/~njn25/pubs/masters2001.ps.gz (Chapter 7) It's more specific (describes a particular implementation) and goes into more of the gruesome details. -- Nick Nethercote [EMAIL PROTECTED] _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
