Update of /project/movitz/cvsroot/movitz In directory common-lisp.net:/tmp/cvs-serv16532
Modified Files: special-operators-cl.lisp Log Message: More tuning of (forwarding-)binding/register allocation stuff. This fix removes many superfluous stack-pushes/register-spills.
Date: Fri Nov 19 21:12:39 2004 Author: ffjeld
Index: movitz/special-operators-cl.lisp diff -u movitz/special-operators-cl.lisp:1.36 movitz/special-operators-cl.lisp:1.37 --- movitz/special-operators-cl.lisp:1.36 Wed Nov 17 14:33:03 2004 +++ movitz/special-operators-cl.lisp Fri Nov 19 21:12:37 2004 @@ -9,7 +9,7 @@ ;;;; Created at: Fri Nov 24 16:31:11 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: special-operators-cl.lisp,v 1.36 2004/11/17 13:33:03 ffjeld Exp $ +;;;; $Id: special-operators-cl.lisp,v 1.37 2004/11/19 20:12:37 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -278,7 +278,25 @@ :init-with-register ,final-form ;; :init-with-type ,final-form )))) - (t (append init-code + ((typep final-form 'constant-object-binding) + #+ignore + (warn "type: ~S or ~S" final-form + (type-specifier-primary type)) + (append (if functional-p + nil + (compiler-call #'compile-form-unprotected + :env init-env + :defaults all + :form init-form + :result-mode :ignore + :modify-accumulate let-modifies)) + `((:init-lexvar + ,binding + :init-with-register ,final-form + :init-with-type ,(type-specifier-primary type) + )))) + (t ;; (warn "for ~S ~S ~S" binding init-register final-form) + (append init-code `((:init-lexvar ,binding :init-with-register ,init-register