From: Juho S. <js...@us...> - 2007-11-18 04:13:37
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv6408/tests Modified Files: fopcompiler.impure-cload.lisp Log Message: 1.0.11.29: Faster CONCATENATE on strings * Add a result-type dependent DEFTRANSFORM which open-codes directly to calls to REPLACE. * Constant-fold the array reads for constant string arguments in the transform (intended as a slezy benchmark trick, but actually it looks as if having some literal strings mixed in with variables is pretty common in real world CONCATENATE uses). * Add transforms for REPLACE on mixed SIMPLE-BASE-STRINGS and (SIMPLE-ARRAY CHARACTER (*)) to support. * Speeds up a simple benchmark of concatenating two three-character strings by a factor of 15, and by a factor of 30 when the strings are constant. For a more real-world example, doing DIRECTORY on a large set of files speeds up by 25%. Also: * Fix a broken test (extra close paren) that was uncovered by the write-no-partial-fasls change. Index: fopcompiler.impure-cload.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/fopcompiler.impure-cload.lisp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- fopcompiler.impure-cload.lisp 12 Apr 2007 15:55:09 -0000 1.3 +++ fopcompiler.impure-cload.lisp 18 Nov 2007 04:13:27 -0000 1.4 @@ -92,5 +92,5 @@ (symbol-macrolet ((foo 1)) (let* ((x (bar (foo))) (y (bar (x foo)))) - (bar (y x foo))))) + (bar (y x foo)))) |