1.0.7.28: compiler being nicer to the compiler
authorNikodemus Siivola <nikodemus@random-state.net>
Tue, 17 Jul 2007 22:26:30 +0000 (22:26 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Tue, 17 Jul 2007 22:26:30 +0000 (22:26 +0000)
commit6fa7b9f967304c090078b835c5419d816c017d8d
tree45f0587b220aceef76aa93988541af55ab44298c
parentda304936655b6690b4ddf15fb2936fe3d219f2ac
1.0.7.28: compiler being nicer to the compiler

 * In MAKE-XEP-LAMBDA-EXPRESSION, use EQL instead of = and NOT <
   instead of >= to avoid additional rounds of deftransforms and
   lambda-conversion.

 * Add a source transform for %COERCE-CALLABLE-TO-FUN to pick of
   simple cases, also avoid inserting additional lambdas to the code.

 * Use %FUNCALL and %COERCE-CALLABLE-TO-FUN in MAPFOO-TRANSFORM,
   providing not just faster compilation, but also making (MAPCAR F
   ...) faster by lifting the %C-C-T-F out of the loop.

 This work was based on Juho's observation that a major source of
 compiler slowness are all the lambdas generated by transforms: not
 that this changes the big picture in any way -- just shaves a few
 corners. If you wish to get a gut feeling of what is going on, stick
 a (PRINT (LIST DEBUG-NAME BODY)) in IR1-CONVERT-INLINE-LAMBDA.
src/compiler/ir1-translators.lisp
src/compiler/locall.lisp
src/compiler/seqtran.lisp
version.lisp-expr