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