From: Nikodemus S. <de...@us...> - 2011-04-08 13:02:29
|
Update of /cvsroot/sbcl/sbcl/tests In directory vz-cvs-3.sog:/tmp/cvs-serv24188/tests Modified Files: compiler.pure.lisp Log Message: 1.0.47.15: %FUNCALL IR1 translator macroexpands the function form Code compiled correctly without this, but added an unnecessary cast to FUNCTION for the lambda in (FUNCALL (LAMBDA ...) ...) forms, which prevented local-call conversion and inlining for the lambda. Note: (FUNCALL (FUNCTION (LAMBDA ...)) ...) forms did not suffer from this. Step on the way to fixing lp#720382. Index: compiler.pure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/compiler.pure.lisp,v retrieving revision 1.252 retrieving revision 1.253 diff -u -d -r1.252 -r1.253 --- compiler.pure.lisp 7 Apr 2011 13:05:01 -0000 1.252 +++ compiler.pure.lisp 8 Apr 2011 13:02:27 -0000 1.253 @@ -3792,6 +3792,14 @@ s))) (g a))))) +(with-test (:name :funcall-lambda-inlined) + (assert (not + (ctu:find-code-constants + (compile nil + `(lambda (x y) + (+ x (funcall (lambda (z) z) y)))) + :type 'function)))) + ;;; This doesn't test LVAR-FUN-IS directly, but captures it ;;; pretty accurately anyways. (with-test (:name :lvar-fun-is) |