From: Alexey D. <ade...@us...> - 2003-02-03 11:56:00
|
Update of /cvsroot/sbcl/sbcl/src/compiler In directory sc8-pr-cvs1:/tmp/cvs-serv661/src/compiler Modified Files: ir1opt.lisp ir1util.lisp pack.lisp Log Message: 0.7.12.16: Fixed compiler failure related to checking types of functions (reported by Robert E. Brown); Index: ir1opt.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ir1opt.lisp,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- ir1opt.lisp 29 Jan 2003 11:29:13 -0000 1.54 +++ ir1opt.lisp 3 Feb 2003 11:55:56 -0000 1.55 @@ -134,6 +134,7 @@ (let* ((fun (combination-fun dest)) (args (combination-args dest)) (fun-type (continuation-type fun))) + (setf (continuation-%externally-checkable-type fun) *wild-type*) (if (or (not (fun-type-p fun-type)) ;; FUN-TYPE might be (AND FUNCTION (SATISFIES ...)). (fun-type-wild-args fun-type)) Index: ir1util.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ir1util.lisp,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- ir1util.lisp 29 Jan 2003 11:29:13 -0000 1.51 +++ ir1util.lisp 3 Feb 2003 11:55:56 -0000 1.52 @@ -210,7 +210,7 @@ ;;; CONT of LAST in its block, then we make it the start of a new ;;; deleted block. ;;; -- If the continuation is :INSIDE-BLOCK inside a block, then we -;;; split the block using Node-Ends-Block, which makes the +;;; split the block using NODE-ENDS-BLOCK, which makes the ;;; continuation be a :BLOCK-START. (defun ensure-block-start (cont) (declare (type continuation cont)) Index: pack.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/pack.lisp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- pack.lisp 17 Nov 2002 13:56:57 -0000 1.15 +++ pack.lisp 3 Feb 2003 11:55:56 -0000 1.16 @@ -26,8 +26,8 @@ ;;; Return true if the element at the specified offset in SB has a ;;; conflict with TN: -;;; -- If a component-live TN (:component kind), then iterate over -;;; all the blocks. If the element at Offset is used anywhere in +;;; -- If a component-live TN (:COMPONENT kind), then iterate over +;;; all the blocks. If the element at OFFSET is used anywhere in ;;; any of the component's blocks (always-live /= 0), then there ;;; is a conflict. ;;; -- If TN is global (Confs true), then iterate over the blocks TN @@ -104,7 +104,7 @@ (loc-live (svref (finite-sb-always-live sb) this-offset))) (cond ((eq kind :component) - (dotimes (num (ir2-block-count *component-being-compiled*) nil) + (dotimes (num (ir2-block-count *component-being-compiled*)) (declare (type index num)) (setf (sbit loc-live num) 1) (set-bit-vector (svref loc-confs num)))) @@ -590,8 +590,8 @@ ;;;; optimized saving ;;; Save TN if it isn't a single-writer TN that has already been -;;; saved. If multi-write, we insert the save Before the specified -;;; VOP. Context is a VOP used to tell which node/block to use for the +;;; saved. If multi-write, we insert the save BEFORE the specified +;;; VOP. CONTEXT is a VOP used to tell which node/block to use for the ;;; new VOP. (defun save-if-necessary (tn before context) (declare (type tn tn) (type (or vop null) before) (type vop context)) @@ -606,7 +606,7 @@ (values)) ;;; Load the TN from its save location, allocating one if necessary. -;;; The load is inserted Before the specifier VOP. Context is a VOP +;;; The load is inserted BEFORE the specifier VOP. CONTEXT is a VOP ;;; used to tell which node/block to use for the new VOP. (defun restore-tn (tn before context) (declare (type tn tn) (type (or vop null) before) (type vop context)) |