Make copy of assignment to cell of cached variable assignment.
authorChris Hanson <org/chris-hanson/cph>
Mon, 1 Jun 1987 20:30:23 +0000 (20:30 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 1 Jun 1987 20:30:23 +0000 (20:30 +0000)
Otherwise the CSE cannot optimize because the assignment occurs at the
join of two control paths.

v7/src/compiler/rtlgen/rgstmt.scm

index 9a5de501270975be006b55c0366010daf6445e98..9d66295c87c16a3c7232bc374916643b61035a5f 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgstmt.scm,v 1.5 1987/06/01 16:06:11 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgstmt.scm,v 1.6 1987/06/01 20:30:23 cph Exp $
 
 Copyright (c) 1987 Massachusetts Institute of Technology
 
@@ -116,12 +116,14 @@ MIT in each case. |#
                                      (ucode-type reference-trap)))
              (n3 (rtl:make-unassigned-test contents))
              (n4 (rtl:make-assignment cell value))
-             (n5 (rtl:make-interpreter-call:cache-assignment cell value)))
+             (n5 (rtl:make-interpreter-call:cache-assignment cell value))
+             (n6 (rtl:make-assignment cell value)))
          (scfg-next-connect! n1 n2)
          (pcfg-consequent-connect! n2 n3)
          (pcfg-alternative-connect! n2 n4)
-         (pcfg-consequent-connect! n3 n4)
+         (pcfg-consequent-connect! n3 n6)
          (pcfg-alternative-connect! n3 n5)
          (make-scfg (cfg-entry-node n1)
                     (hooks-union (scfg-next-hooks n4)
+                                 (hooks-union (scfg-next-hooks n5)
                                               (scfg-next-hooks n6)))))))))
\ No newline at end of file