From: Chris Hanson Date: Mon, 1 Jun 1987 20:30:23 +0000 (+0000) Subject: Make copy of assignment to cell of cached variable assignment. X-Git-Tag: 20090517-FFI~13437 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=5e86c04bd4b692fc8d4d55c8400dc6c4706fcdc9;p=mit-scheme.git Make copy of assignment to cell of cached variable assignment. Otherwise the CSE cannot optimize because the assignment occurs at the join of two control paths. --- diff --git a/v7/src/compiler/rtlgen/rgstmt.scm b/v7/src/compiler/rtlgen/rgstmt.scm index 9a5de5012..9d66295c8 100644 --- a/v7/src/compiler/rtlgen/rgstmt.scm +++ b/v7/src/compiler/rtlgen/rgstmt.scm @@ -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