From 472310c5735fd8da5b31cab3d1401e6f99c0ccef Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Wed, 20 Jul 1988 00:10:01 +0000 Subject: [PATCH] Do not delete fg-noop nodes that are still needed. In the following example, the entry node of the continuation passed to `bar' is needed because it is referenced by the subproblem object for the let: (let ((cos-total (begin (bar) cos7))) cos-total) --- v7/src/compiler/fggen/fggen.scm | 15 ++++++++------- v7/src/compiler/machines/bobcat/make.scm-68040 | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/v7/src/compiler/fggen/fggen.scm b/v7/src/compiler/fggen/fggen.scm index b98e527bf..0cc6b9181 100644 --- a/v7/src/compiler/fggen/fggen.scm +++ b/v7/src/compiler/fggen/fggen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fggen/fggen.scm,v 4.6 1988/06/14 08:36:12 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fggen/fggen.scm,v 4.7 1988/07/20 00:08:42 cph Exp $ Copyright (c) 1988 Massachusetts Institute of Technology @@ -56,12 +56,13 @@ MIT in each case. |# (set-block-bound-variables! block variables) (generate/body block continuation declarations scode)))))) ;; Delete as many noop nodes as possible. - (for-each (lambda (procedure) - (if (procedure-continuation? procedure) - (set-procedure-entry-node! - procedure - (snode-next (procedure-entry-node procedure))))) - *procedures*) + (for-each + (lambda (procedure) + (if (procedure-continuation? procedure) + (let ((next (snode-next (procedure-entry-node procedure)))) + (if next + (set-procedure-entry-node! procedure next))))) + *procedures*) (for-each (lambda (continuation) (set-virtual-continuation/parent! continuation false)) *virtual-continuations*) diff --git a/v7/src/compiler/machines/bobcat/make.scm-68040 b/v7/src/compiler/machines/bobcat/make.scm-68040 index 427cf341e..3dc74e092 100644 --- a/v7/src/compiler/machines/bobcat/make.scm-68040 +++ b/v7/src/compiler/machines/bobcat/make.scm-68040 @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/make.scm-68040,v 4.18 1988/06/14 09:38:11 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/make.scm-68040,v 4.19 1988/07/20 00:10:01 cph Exp $ Copyright (c) 1988 Massachusetts Institute of Technology @@ -41,4 +41,4 @@ MIT in each case. |# ((package/reference (find-package name) 'INITIALIZE-PACKAGE!))) '((COMPILER MACROS) (COMPILER DECLARATIONS))) -(add-system! (make-system "Liar" 14 18 '())) \ No newline at end of file +(add-system! (make-system "Liar" 14 19 '())) \ No newline at end of file -- 2.25.1