From: Alexey D. <ade...@us...> - 2003-01-03 18:53:52
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs1:/tmp/cvs-serv30503 Modified Files: BUGS OPTIMIZATIONS version.lisp-expr Log Message: 0.7.11.1: New bug. Index: BUGS =================================================================== RCS file: /cvsroot/sbcl/sbcl/BUGS,v retrieving revision 1.260 retrieving revision 1.261 diff -u -d -r1.260 -r1.261 --- BUGS 30 Dec 2002 00:42:27 -0000 1.260 +++ BUGS 3 Jan 2003 18:53:46 -0000 1.261 @@ -1190,9 +1190,8 @@ 229: (subtypep 'function '(function)) => nil, t. -233: - Bug in constraint propagation: - +233: bugs in constraint propagation + a. (defun foo (x) (declare (optimize (speed 2) (safety 3))) (let ((y 0d0)) @@ -1204,6 +1203,14 @@ (foo 4) => segmentation violation (see usage of CONTINUATION-ASSERTED-TYPE in USE-RESULT-CONSTRAINTS) + + b. + (declaim (optimize (speed 2) (safety 3))) + (defun foo (x y) + (if (typep (prog1 x (setq x y)) 'double-float) + (+ x 1d0) + (+ x 2))) + (foo 1d0 5) => segmentation violation 234: (fixed in sbcl-0.7.10.36) Index: OPTIMIZATIONS =================================================================== RCS file: /cvsroot/sbcl/sbcl/OPTIMIZATIONS,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- OPTIMIZATIONS 27 Dec 2002 11:05:20 -0000 1.2 +++ OPTIMIZATIONS 3 Jan 2003 18:53:46 -0000 1.3 @@ -64,3 +64,35 @@ * And why two moves? -------------------------------------------------------------------------------- +(loop repeat 1.5) + +uses generic arithmetic +-------------------------------------------------------------------------------- +09:49:05 <jtra> I have found a case in those where suboptimal code is + generate with nested loops, it might be moderately easy to fix that +09:49:28 <jtra> see + http://www.bagley.org/~doug/shootout/bench/nestedloop/nestedloop.cmucl +09:50:30 <jtra> if you add declarations to dotimes, generated code is + almost optimal, but most inner loops run out of registers and use + memory location for iteration variable + +;;; -*- mode: lisp -*- +;;; $Id$ +;;; http://www.bagley.org/~doug/shootout/ +;;; from Friedrich Dominicus + +(defun main () + (let ((n (parse-integer (or (car (last extensions:*command-line-strings*)) "1"))) + (x 0)) + (declare (fixnum n) + (fixnum x) + (optimize (speed 3) (debug 0) (safety 0))) + (dotimes (a n) + (dotimes (b n) + (dotimes (c n) + (dotimes (d n) + (dotimes (e n) + (dotimes (f n) + (incf x))))))) + (format t "~A~%" x))) +-------------------------------------------------------------------------------- Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.714 retrieving revision 1.715 diff -u -d -r1.714 -r1.715 --- version.lisp-expr 31 Dec 2002 20:45:30 -0000 1.714 +++ version.lisp-expr 3 Jan 2003 18:53:46 -0000 1.715 @@ -18,4 +18,4 @@ ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.11" +"0.7.11.1" |