0.8.8.23.stack.4:

* Fix bug MISC.295: in DF ordering take into account hidden
          control transfers to NLEs.
This commit is contained in:
Alexey Dejneka 2004-04-10 10:24:57 +00:00
parent f1e093e0f8
commit 14ff2ab5d8
5 changed files with 28 additions and 2 deletions

View file

@ -91,6 +91,18 @@
(setf (block-flag block) t)
(dolist (succ (block-succ block))
(find-dfo-aux succ head component))
(when (component-nlx-info-generated-p component)
;; FIXME: We also need (and do) this walk before physenv
;; analysis, but at that time we are probably not very
;; interested in the actual DF order.
;;
;; TODO: It is probable that one of successors have the same (or
;; similar) set of NLXes; try to shorten the walk (but think
;; about a loop, the only exit from which is non-local).
(map-block-nlxes (lambda (nlx-info)
(let ((nle (nlx-info-target nlx-info)))
(find-dfo-aux nle head component)))
block))
(remove-from-dfo block)
(add-to-dfo block head))
(values))

View file

@ -373,7 +373,8 @@
;; inline expansion. Unlike NEW-FUNCTIONALS, this is not disjoint
;; from COMPONENT-LAMBDAS.
(reanalyze-functionals nil :type list)
(delete-blocks nil :type list))
(delete-blocks nil :type list)
(nlx-info-generated-p nil :type boolean))
(defprinter (component :identity t)
name
#!+sb-show id

View file

@ -50,6 +50,7 @@
(setf (functional-kind fun) nil)
(delete-functional fun)))))
(setf (component-nlx-info-generated-p component) t)
(values))
;;; This is to be called on a COMPONENT with top level LAMBDAs before

View file

@ -1169,6 +1169,18 @@
nil)))
1 2)))
;;; misc.295
(assert (eql
(funcall
(compile
nil
'(lambda ()
(declare (optimize (speed 1) (space 0) (safety 0) (debug 0)))
(multiple-value-prog1
(the integer (catch 'ct8 (catch 'ct7 15867134)))
(catch 'ct1 (throw 'ct1 0))))))
15867134))
;;; MISC.275
(assert

View file

@ -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.8.23.stack.3"
"0.8.8.23.stack.4"