An lvalue whose only backward link is itself may be known.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sun, 6 Nov 1988 13:55:39 +0000 (13:55 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sun, 6 Nov 1988 13:55:39 +0000 (13:55 +0000)
This is a patch. General loops should work as well.

v7/src/compiler/fgopt/folcon.scm

index 813c924b702f7cd5368a55af483fb88bd65a9d73..e86bb5487faa94368e443706199b07f9d349ea74 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fgopt/folcon.scm,v 4.2 1987/12/30 06:44:31 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fgopt/folcon.scm,v 4.3 1988/11/06 13:55:39 jinx Exp $
 
 Copyright (c) 1987 Massachusetts Institute of Technology
 
@@ -75,7 +75,11 @@ MIT in each case. |#
 
 (define (delete-if-known! lvalue)
   (if (and (not (lvalue-known-value lvalue))
-          (for-all? (lvalue-backward-links lvalue) lvalue-known-value))
+          (for-all? (lvalue-backward-links lvalue)
+            (lambda (lvalue*)
+              (if (eq? lvalue lvalue*)
+                  true
+                  (lvalue-known-value lvalue*)))))
       (let ((value (car (lvalue-values lvalue))))
        (for-each (lambda (lvalue*)
                    (if (lvalue-mark-set? lvalue* 'KNOWABLE)