From a7e31a8ddcc9896cbf20dcc29486733d5dd2f382 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Mon, 5 Oct 1987 20:25:28 +0000 Subject: [PATCH] - Make assignments use their own caches, distinct from those use by references. - Turn uuo links on by default. - Partly implement the CONSTANT declaration. - Add some more declaration language (ALL and NONE). - Make the variable set be computed at the right point during graph construction. --- v7/src/compiler/machines/bobcat/dassm2.scm | 8 +++++--- v7/src/compiler/machines/bobcat/lapgen.scm | 6 +++--- v7/src/compiler/rtlbase/rtlty1.scm | 3 ++- v7/src/compiler/rtlgen/rgstmt.scm | 4 ++-- v7/src/compiler/rtlopt/ralloc.scm | 5 +++-- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/v7/src/compiler/machines/bobcat/dassm2.scm b/v7/src/compiler/machines/bobcat/dassm2.scm index d532e61f0..85734cc99 100644 --- a/v7/src/compiler/machines/bobcat/dassm2.scm +++ b/v7/src/compiler/machines/bobcat/dassm2.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/dassm2.scm,v 1.1 1987/08/07 17:12:40 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/dassm2.scm,v 1.2 1987/10/05 20:24:22 jinx Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -155,7 +155,7 @@ MIT in each case. |# (make-losing-instruction 'W)))))))) (define (undefined-instruction) - ;; This losing assignment removes a 'call/cc'. Too bad. + ;; This losing assignment removes a 'cwcc'. Too bad. (set! *valid? false) '()) @@ -201,7 +201,9 @@ MIT in each case. |# #x0228 '(uuo-link uuo-link-trap cache-reference-apply safe-reference-trap unassigned?-trap - cache-variable-multiple uuo-link-multiple)))) + cache-variable-multiple uuo-link-multiple + &+ &- &* &/ &= &< &> 1+ -1+ zero? positive? negative? + cache-assignment cache-assignment-multiple operator-trap)))) (make-table))) (define-integrable (lookup-special-register reg table) diff --git a/v7/src/compiler/machines/bobcat/lapgen.scm b/v7/src/compiler/machines/bobcat/lapgen.scm index 03c906374..12415ca06 100644 --- a/v7/src/compiler/machines/bobcat/lapgen.scm +++ b/v7/src/compiler/machines/bobcat/lapgen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.189 1987/09/03 05:14:16 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.190 1987/10/05 20:25:28 jinx Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -243,7 +243,6 @@ MIT in each case. |# (define (address-register? register) (and (< register 16) (>= register 8))) - (define-integrable (lap:ea-keyword expression) (car expression)) @@ -280,7 +279,8 @@ MIT in each case. |# assignment-trap) (define-entries #x0228 uuo-link uuo-link-trap cache-reference-apply safe-reference-trap unassigned?-trap cache-variable-multiple - uuo-link-multiple &+ &- &* &/ &= &< &> 1+ -1+ zero? positive? negative?)) + uuo-link-multiple &+ &- &* &/ &= &< &> 1+ -1+ zero? positive? negative? + cache-assignment cache-assignment-multiple operator-trap)) (define-integrable reg:compiled-memtop (INST-EA (@A 6))) (define-integrable reg:environment (INST-EA (@AO 6 #x000C))) diff --git a/v7/src/compiler/rtlbase/rtlty1.scm b/v7/src/compiler/rtlbase/rtlty1.scm index b7275de88..48169623b 100644 --- a/v7/src/compiler/rtlbase/rtlty1.scm +++ b/v7/src/compiler/rtlbase/rtlty1.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlty1.scm,v 1.13 1987/09/03 05:15:29 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlty1.scm,v 1.14 1987/10/05 20:22:15 jinx Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -47,6 +47,7 @@ MIT in each case. |# (define-rtl-expression cons-pointer rtl: type datum) (define-rtl-expression constant % value) (define-rtl-expression variable-cache rtl: name) +(define-rtl-expression assignment-cache rtl: name) (define-rtl-expression entry:continuation % continuation) (define-rtl-expression entry:procedure % procedure) (define-rtl-expression offset-address rtl: register number) diff --git a/v7/src/compiler/rtlgen/rgstmt.scm b/v7/src/compiler/rtlgen/rgstmt.scm index 5f2a47dd9..ede0e7dd5 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.8 1987/06/23 02:15:57 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgstmt.scm,v 1.9 1987/10/05 20:21:05 jinx Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -109,7 +109,7 @@ MIT in each case. |# (let ((temp (make-temporary))) (let ((cell (rtl:make-fetch temp))) (let ((contents (rtl:make-fetch cell))) - (let ((n1 (rtl:make-assignment temp (rtl:make-variable-cache name))) + (let ((n1 (rtl:make-assignment temp (rtl:make-assignment-cache name))) (n2 (rtl:make-type-test (rtl:make-object->type contents) (ucode-type reference-trap))) (n3 (rtl:make-unassigned-test contents)) diff --git a/v7/src/compiler/rtlopt/ralloc.scm b/v7/src/compiler/rtlopt/ralloc.scm index 129266643..90855ed01 100644 --- a/v7/src/compiler/rtlopt/ralloc.scm +++ b/v7/src/compiler/rtlopt/ralloc.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/ralloc.scm,v 1.12 1987/08/07 17:06:53 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/ralloc.scm,v 1.13 1987/10/05 20:21:30 jinx Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -50,7 +50,8 @@ MIT in each case. |# (fluid-let ((*current-rgraph* rgraph)) (walk-bblocks n-registers (let ((bblocks (rgraph-bblocks rgraph))) - (set-rgraph-bblocks! rgraph false)))))) + (set-rgraph-bblocks! rgraph false) + bblocks))))) (define (walk-bblocks n-registers bblocks) ;; First, renumber all the registers remaining to be allocated. -- 2.25.1