From: William H. N. <wn...@us...> - 2002-08-26 15:02:19
|
Update of /cvsroot/sbcl/sbcl/src/compiler In directory usw-pr-cvs1:/tmp/cvs-serv16746/src/compiler Modified Files: constraint.lisp Log Message: 0.7.7.2: merged APD bug120a patch (sbcl-devel 2002-08-21) deleted "TODO: convert to AVER" note from original patch, replaced it with justification from discussion in cmucl-imp (esp. Alexey's message 2002-08-23) The function has gotten large enough that I really doubt that the DECLAIM INLINE helps, so I deleted it. Index: constraint.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/constraint.lisp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- constraint.lisp 5 Mar 2002 16:25:44 -0000 1.14 +++ constraint.lisp 26 Aug 2002 15:02:15 -0000 1.15 @@ -110,9 +110,14 @@ ;;; Add complementary constraints to the consequent and alternative ;;; blocks of IF. We do nothing if X is NIL. -#!-sb-fluid (declaim (inline add-complement-constraints)) (defun add-complement-constraints (if fun x y not-p) - (when x + (when (and x + ;; Note: Even if we do (IF test exp exp) => (PROGN test exp) + ;; optimization, the *MAX-OPTIMIZE-ITERATIONS* cutoff means + ;; that we can't guarantee that the optimization will be + ;; done, so we still need to avoid barfing on this case. + (not (eq (if-consequent if) + (if-alternative if)))) (add-test-constraint (if-consequent if) fun x y not-p) (add-test-constraint (if-alternative if) fun x y (not not-p))) (values)) |