From 9658968076fd15bb954fb8ca9889882413862232 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Wed, 16 May 1990 10:59:55 +0000
Subject: [PATCH] Fixed JOIN-BLOCKS to combine many optimization flags it was
 ignoring. Fixed continuation substitution stuff to look at the let's home
 lambda so that we will sometimes do something.

---
 compiler/ir1opt.lisp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/compiler/ir1opt.lisp b/compiler/ir1opt.lisp
index 294fcf20e..30a33568d 100644
--- a/compiler/ir1opt.lisp
+++ b/compiler/ir1opt.lisp
@@ -438,8 +438,14 @@
 
   (setf (block-end-cleanup block1) (block-end-cleanup block2))
 
-  (setf (block-reoptimize block1)
-	(or (block-reoptimize block1) (block-reoptimize block2)))
+  (when (block-reoptimize block2)
+    (setf (block-reoptimize block1) t))
+  (when (block-flush-p block2)
+    (setf (block-flush-p block1) t))
+  (when (block-type-check block2)
+    (setf (block-type-check block1) t))
+  (assert (not (block-delete-p block2)))
+
   (setf (block-type-asserted block1) t)
   (setf (block-test-modified block1) t)
   
@@ -1018,7 +1024,7 @@
 	       dest
 	       (not (typep dest '(or creturn exit mv-combination)))
 	       (eq (lambda-home (block-lambda (node-block ref)))
-		   (lambda-var-home var)))
+		   (lambda-home (lambda-var-home var))))
       (assert-continuation-type arg (continuation-asserted-type cont))
       (change-ref-leaf ref (find-constant nil))
       (substitute-continuation arg cont)
-- 
GitLab