From 0728233f354ae16a302af5fcdd2a1d8dcbb54540 Mon Sep 17 00:00:00 2001 From: Alexey Dejneka Date: Wed, 13 Oct 2004 18:05:36 +0000 Subject: [PATCH] 0.8.15.14: * Fix bug MISC.427: rebuild DFO before loop analysis. --- src/compiler/main.lisp | 3 ++- tests/compiler.pure.lisp | 14 ++++++++++++++ version.lisp-expr | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/compiler/main.lisp b/src/compiler/main.lisp index 0951cc8..9a86abe 100644 --- a/src/compiler/main.lisp +++ b/src/compiler/main.lisp @@ -526,7 +526,8 @@ (ir1-phases component) - (when *loop-analyze* + (when *loop-analyze* + (dfo-as-needed component) (find-dominators component) (loop-analyze component)) diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index d3c6731..cd528ed 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -1481,3 +1481,17 @@ (compile nil '(lambda (s x) (pprint-logical-block (s x :suffix ">") (print x s))))) + +;;; MISC.427: loop analysis requires complete DFO structure +(assert (eql 17 (funcall + (compile + nil + '(lambda (a) + (declare (notinline list reduce logior)) + (declare (optimize (safety 2) (compilation-speed 1) + (speed 3) (space 2) (debug 2))) + (logior + (let* ((v5 (reduce #'+ (list 0 a)))) + (declare (dynamic-extent v5)) + v5)))) + 17))) diff --git a/version.lisp-expr b/version.lisp-expr index 3f4b407..648cade 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.15.13" +"0.8.15.14" -- 1.7.10.4