From: Chris Hanson Date: Sat, 18 Apr 1987 00:22:35 +0000 (+0000) Subject: Change the analysis performed to determine whether a variable has been X-Git-Tag: 20090517-FFI~13607 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=6f95df1afb9f5c99d3e6c614084f1da28eb306e5;p=mit-scheme.git Change the analysis performed to determine whether a variable has been assigned. Do not treat auxiliary bindings specially, except those that have been identified as having constant or procedure values. This unfortunately produces less efficient code, but guarantees that there will be no troubles with the order of events when creating closures. --- diff --git a/v7/src/compiler/base/ctypes.scm b/v7/src/compiler/base/ctypes.scm index 746ddefe2..12cbcbe79 100644 --- a/v7/src/compiler/base/ctypes.scm +++ b/v7/src/compiler/base/ctypes.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/ctypes.scm,v 1.42 1987/03/19 23:11:10 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/ctypes.scm,v 1.43 1987/04/18 00:22:35 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -41,7 +41,7 @@ MIT in each case. |# (define (make-assignment block lvalue rvalue) (vnode-connect! lvalue rvalue) (if (variable? lvalue) - (set-variable-assignments! lvalue (1+ (variable-assignments lvalue)))) + (variable-assigned! lvalue)) (snode->scfg (make-snode assignment-tag block lvalue rvalue))) (define-snode definition block lvalue rvalue) @@ -49,7 +49,7 @@ MIT in each case. |# (define (make-definition block lvalue rvalue) (vnode-connect! lvalue rvalue) (if (variable? lvalue) - (set-variable-assignments! lvalue (1+ (variable-assignments lvalue)))) + (variable-assigned! lvalue)) (snode->scfg (make-snode definition-tag block lvalue rvalue))) (define-pnode true-test rvalue)