From 9b0cb6bbc2acaa7b52bcc648c0e7f8ebf926d263 Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Wed, 29 Jul 1992 20:39:52 +0000
Subject: [PATCH] Also grovel over the queued branches when assigning depths,
 because they and their dependencies are not reachable from the
 emittable-insts.  Changed %print-instruction to only print that id noise when
 #+debug because most of the time we don't care.

---
 compiler/new-assem.lisp | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/compiler/new-assem.lisp b/compiler/new-assem.lisp
index cf3f4a767..f06d6a543 100644
--- a/compiler/new-assem.lisp
+++ b/compiler/new-assem.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/new-assem.lisp,v 1.12 1992/07/29 16:04:36 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/new-assem.lisp,v 1.13 1992/07/29 20:39:52 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -253,19 +253,22 @@
   ;; List of the instrucitons who read what we write.
   (read-dependents nil :type list))
 ;;;
-(defvar *inst-ids* (make-hash-table :test #'eq))
-(defvar *next-inst-id* 0)
+#+debug (defvar *inst-ids* (make-hash-table :test #'eq))
+#+debug (defvar *next-inst-id* 0)
 (defun %print-instruction (inst stream depth)
   (declare (ignore depth))
   (print-unreadable-object (inst stream :type t :identity t)
+    #+debug
     (princ (or (gethash inst *inst-ids*)
 	       (setf (gethash inst *inst-ids*)
 		     (incf *next-inst-id*)))
 	   stream)
-    (format stream " emitter=~S" (inst-emitter inst))
+    (format stream #+debug " emitter=~S" #-debug "emitter=~S"
+	    (inst-emitter inst))
     (when (inst-depth inst)
       (format stream ", depth=~D" (inst-depth inst)))))
 
+#+debug
 (defun reset-inst-ids ()
   (clrhash *inst-ids*)
   (setf *next-inst-id* 0))
@@ -430,7 +433,9 @@
 		  (add-to-nth-list delayed inst (1- (inst-delay inst))))))
       (setf (segment-emittable-insts segment)
 	    (sort really-emittable-insts #'> :key #'inst-depth))
-      (setf (segment-delayed segment) delayed)))
+      (setf (segment-delayed segment) delayed))
+    (dolist (branch (segment-queued-branches segment))
+      (grovel-inst (cdr branch))))
   #+debug
   (format *trace-output* "Queued branches: ~S~%"
 	  (segment-queued-branches segment))
-- 
GitLab