From: Alexey Dejneka Date: Fri, 3 Jan 2003 18:53:46 +0000 (+0000) Subject: 0.7.11.1: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=852a4504e8a9040adf52d374dafa4813bc661173;p=sbcl.git 0.7.11.1: New bug. --- diff --git a/BUGS b/BUGS index 225f4eb..0c1771c 100644 --- a/BUGS +++ b/BUGS @@ -1190,9 +1190,8 @@ WORKAROUND: 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)) @@ -1205,6 +1204,14 @@ WORKAROUND: (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) diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index ba0f5e8..7f45bee 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -64,3 +64,35 @@ VOP DATA-VECTOR-SET/SIMPLE-STRING V2!14[EDI] t32[EAX] t30[S2]>t33[CL] * And why two moves? -------------------------------------------------------------------------------- +(loop repeat 1.5) + +uses generic arithmetic +-------------------------------------------------------------------------------- +09:49:05 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 see + http://www.bagley.org/~doug/shootout/bench/nestedloop/nestedloop.cmucl +09:50:30 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))) +-------------------------------------------------------------------------------- diff --git a/version.lisp-expr b/version.lisp-expr index b1d6a5f..b4b5b49 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"