Do not delete fg-noop nodes that are still needed. In the following
authorChris Hanson <org/chris-hanson/cph>
Wed, 20 Jul 1988 00:10:01 +0000 (00:10 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 20 Jul 1988 00:10:01 +0000 (00:10 +0000)
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
v7/src/compiler/machines/bobcat/make.scm-68040

index b98e527bf0f43f893fd7079b12e8650390d43a31..0cc6b9181c20b1c13a77852b711232694d8a6719 100644 (file)
@@ -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*)
index 427cf341e5288f791a3db9f4054073af5adbdbfa..3dc74e092fa6f761f0e4c49f5d73137961a54922 100644 (file)
@@ -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