[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