[movitz-cvs] CVS update: movitz/special-operators-cl.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Fri Nov 19 20:12:44 UTC 2004
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
More information about the Movitz-cvs
mailing list