From 9b0d9ca16bc03c722c6d7b81153b2f009f2080fb Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Sun, 12 Apr 1987 00:25:26 +0000 Subject: [PATCH] There are two kinds of "stack" procedure, which can be distinguished by whether or not the parent frame of the procedure is a stack frame. Split these two and handle them separately. See "emodel" for details about the new classifications. --- v7/src/compiler/machines/bobcat/lapgen.scm | 21 +- v7/src/compiler/machines/spectrum/lapgen.scm | 4 +- v7/src/compiler/rtlbase/rtlty1.scm | 5 +- v7/src/compiler/rtlgen/rgcomb.scm | 196 ++++++++++--------- v7/src/compiler/rtlgen/rtlgen.scm | 150 +++++++------- v7/src/compiler/rtlopt/rcse1.scm | 5 +- 6 files changed, 192 insertions(+), 189 deletions(-) diff --git a/v7/src/compiler/machines/bobcat/lapgen.scm b/v7/src/compiler/machines/bobcat/lapgen.scm index 3fd28bd5d..9d807240f 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.155 1987/03/20 05:16:16 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.156 1987/04/12 00:24:56 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -653,24 +653,19 @@ MIT in each case. |# (CMP L ,reg:compiled-memtop (A 5)) (B GE S (@PCR ,gc-label))))) -(define-rule statement - (SETUP-CLOSURE-LEXPR (? procedure)) - (lexpr-header procedure 1)) - -(define-rule statement - (SETUP-STACK-LEXPR (? procedure)) - (lexpr-header procedure 0)) - ;;; Note: do not change the MOVE.W in the setup-lexpr call to a MOVEQ. ;;; The setup-lexpr code assumes a fixed calling sequence to compute -;;; the GC address if that is needed. +;;; the GC address if that is needed. This could be changed so that +;;; the microcode determined how far to back up based on the argument, +;;; or by examining the calling sequence. -(define (lexpr-header procedure extra) +(define-rule statement + (SETUP-LEXPR (? procedure)) `(,@(procedure-header procedure false) (MOVE W (& ,(+ (length (procedure-required procedure)) (length (procedure-optional procedure)) - extra)) + (if (procedure/closure? procedure) 1 0))) (D 1)) (MOVEQ (& ,(if (procedure-rest procedure) 1 0)) (D 2)) (JSR , entry:compiler-setup-lexpr))) @@ -687,7 +682,7 @@ MIT in each case. |# (define (procedure-header procedure gc-label) (let ((internal-label (procedure-label procedure))) - (append! (if (closure-procedure? procedure) + (append! (if (procedure/closure? procedure) (let ((required (1+ (length (procedure-required procedure)))) (optional (length (procedure-optional procedure))) (label (procedure-external-label procedure))) diff --git a/v7/src/compiler/machines/spectrum/lapgen.scm b/v7/src/compiler/machines/spectrum/lapgen.scm index 8e1f99f71..ce8d90ebf 100644 --- a/v7/src/compiler/machines/spectrum/lapgen.scm +++ b/v7/src/compiler/machines/spectrum/lapgen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/spectrum/lapgen.scm,v 1.136 1987/03/19 00:55:32 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/spectrum/lapgen.scm,v 1.137 1987/04/12 00:25:26 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -962,7 +962,7 @@ MIT in each case. |# (define (procedure-header procedure) (let ((internal-label (procedure-label procedure))) - (append! (if (closure-procedure? procedure) + (append! (if (procedure/closure? procedure) (let ((required (1+ (length (procedure-required procedure)))) (optional (length (procedure-optional procedure))) (label (procedure-external-label procedure))) diff --git a/v7/src/compiler/rtlbase/rtlty1.scm b/v7/src/compiler/rtlbase/rtlty1.scm index 4f9f9785a..371394aeb 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.1 1987/03/19 00:44:40 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlty1.scm,v 1.2 1987/04/12 00:21:39 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -60,8 +60,7 @@ MIT in each case. |# (define-rtl-statement continuation-heap-check rtl: continuation) (define-rtl-statement procedure-heap-check rtl: procedure) (define-rtl-statement return rtl:) -(define-rtl-statement setup-closure-lexpr rtl: procedure) -(define-rtl-statement setup-stack-lexpr rtl: procedure) +(define-rtl-statement setup-lexpr rtl: procedure) (define-rtl-statement interpreter-call:access % environment name) (define-rtl-statement interpreter-call:define % environment name value) diff --git a/v7/src/compiler/rtlgen/rgcomb.scm b/v7/src/compiler/rtlgen/rgcomb.scm index 54063382a..f022ef239 100644 --- a/v7/src/compiler/rtlgen/rgcomb.scm +++ b/v7/src/compiler/rtlgen/rgcomb.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgcomb.scm,v 1.7 1987/03/19 00:47:01 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgcomb.scm,v 1.8 1987/04/12 00:22:37 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -211,7 +211,7 @@ MIT in each case. |# (let ((operator (combination-known-operator combination))) (and operator (procedure? operator) - (stack-procedure? operator)))) + (procedure/open-internal? operator)))) (finish offset (rtl:message-receiver-size:subproblem) rtl:make-message-receiver:subproblem @@ -223,58 +223,61 @@ MIT in each case. |# ((let ((operator (combination-known-operator combination))) (cond ((normal-primitive-constant? operator) make-call:primitive) ((or (not operator) (not (procedure? operator))) make-call:unknown) - ((ic-procedure? operator) make-call:ic) - ((closure-procedure? operator) make-call:closure) - ((stack-procedure? operator) - (let ((block (combination-block combination))) - (cond ((stack-block? block) make-call:stack-with-link) - ((ic-block? block) - (error "IC procedure calling stack procedure" - combination)) - (else (error "Unknown caller type" block))))) - (else (error "Unknown callee type" operator)))) + (else + (case (procedure/type operator) + ((OPEN-INTERNAL) make-call:stack-with-link) + ((OPEN-EXTERNAL) make-call:open-external) + ((CLOSURE) make-call:closure) + ((IC) make-call:ic) + (else (error "Unknown callee type" operator)))))) combination offset invocation-prefix:null continuation)) ;;;; Reductions (define (combination:reduction combination offset) - (let ((operator (combination-known-operator combination)) + (let ((callee (combination-known-operator combination)) (block (combination-block combination))) - (define (choose-generator ic closure stack) - ((cond ((ic-block? block) ic) - ((closure-procedure-block? block) closure) - ((stack-procedure-block? block) stack) - (else (error "Unknown caller type" block))) + (define (choose-generator ic external internal) + ((let ((caller (block-procedure block))) + (cond ((or (not caller) (procedure/ic? caller)) ic) + ((procedure/external? caller) external) + (else internal))) combination offset)) - (cond ((normal-primitive-constant? operator) + (cond ((normal-primitive-constant? callee) (choose-generator reduction:ic->primitive - reduction:closure->primitive - reduction:stack->primitive)) - ((or (not operator) - (not (procedure? operator))) + reduction:external->primitive + reduction:internal->primitive)) + ((or (not callee) + (not (procedure? callee))) (choose-generator reduction:ic->unknown - reduction:closure->unknown - reduction:stack->unknown)) - ((ic-procedure? operator) - (choose-generator reduction:ic->ic - reduction:closure->ic - reduction:stack->ic)) - ((closure-procedure? operator) - (choose-generator reduction:ic->closure - reduction:closure->closure - reduction:stack->closure)) - ((stack-procedure? operator) - (choose-generator reduction:ic->stack - reduction:closure->stack - (let ((block* (procedure-block operator))) - (cond ((block-child? block block*) - reduction:stack->child) - ((block-sibling? block block*) - reduction:stack->sibling) - (else - reduction:stack->ancestor))))) - (else (error "Unknown callee type" operator))))) - + reduction:external->unknown + reduction:internal->unknown)) + (else + (case (procedure/type callee) + ((IC) + (choose-generator reduction:ic->ic + reduction:external->ic + reduction:internal->ic)) + ((CLOSURE) + (choose-generator reduction:ic->closure + reduction:external->closure + reduction:internal->closure)) + ((OPEN-EXTERNAL) + (choose-generator reduction:ic->open-external + reduction:external->open-external + reduction:internal->open-external)) + ((OPEN-INTERNAL) + (choose-generator reduction:ic->child + reduction:external->child + (let ((block* (procedure-block callee))) + (cond ((block-child? block block*) + reduction:internal->child) + ((block-sibling? block block*) + reduction:internal->sibling) + (else + reduction:internal->ancestor))))) + (else (error "Unknown callee type" callee))))))) + (define (reduction:ic->unknown combination offset) (make-call:unknown combination offset invocation-prefix:null false)) @@ -286,58 +289,67 @@ MIT in each case. |# (define (reduction:ic->closure combination offset) (make-call:closure combination offset invocation-prefix:null false)) - -(define (reduction:ic->stack combination offset) - ;; The callee must be a child of the caller, but in that case it - ;; should be a closure -- so this is a logic error. - (error "IC procedure calling stack procedure" combination)) -(define (reduction:closure->unknown combination offset) +(define (reduction:ic->open-external combination offset) + (make-call:open-external combination offset invocation-prefix:null false)) + +(define (reduction:ic->child combination offset) + (error "Calling internal procedure from IC procedure")) + +(define (reduction:external->unknown combination offset) (make-call:unknown combination offset invocation-prefix:move-frame-up false)) -(define (reduction:closure->ic combination offset) +(define (reduction:external->ic combination offset) (make-call:ic combination offset invocation-prefix:move-frame-up false)) -(define (reduction:closure->primitive combination offset) +(define (reduction:external->primitive combination offset) (make-call:primitive combination offset invocation-prefix:move-frame-up false)) -(define (reduction:closure->closure combination offset) +(define (reduction:external->closure combination offset) (make-call:closure combination offset invocation-prefix:move-frame-up false)) -(define (reduction:closure->stack combination offset) - ;; The callee is known to be a child of the caller because the - ;; analyzer prohibits the other cases. +(define (reduction:external->open-external combination offset) + (make-call:open-external combination offset invocation-prefix:move-frame-up + false)) + +(define (reduction:external->child combination offset) (make-call:child combination offset rtl:make-message-receiver:closure rtl:message-receiver-size:closure)) - -(define (reduction:stack->unknown combination offset) - (make-call:unknown combination offset invocation-prefix:stack->closure + +(define (reduction:internal->unknown combination offset) + (make-call:unknown combination offset invocation-prefix:internal->closure false)) -(define (reduction:stack->ic combination offset) - (make-call:ic combination offset invocation-prefix:stack->closure false)) +(define (reduction:internal->ic combination offset) + (make-call:ic combination offset invocation-prefix:internal->closure false)) -(define (reduction:stack->primitive combination offset) - (make-call:primitive combination offset invocation-prefix:stack->closure +(define (reduction:internal->primitive combination offset) + (make-call:primitive combination offset invocation-prefix:internal->closure false)) -(define (reduction:stack->closure combination offset) - (make-call:closure combination offset invocation-prefix:stack->closure +(define (reduction:internal->closure combination offset) + (make-call:closure combination offset invocation-prefix:internal->closure false)) -(define (reduction:stack->child combination offset) +(define (reduction:internal->open-external combination offset) + (make-call:open-external combination offset + invocation-prefix:internal->closure + false)) + +(define (reduction:internal->child combination offset) (make-call:child combination offset rtl:make-message-receiver:stack rtl:message-receiver-size:stack)) -(define (reduction:stack->sibling combination offset) - (make-call:stack combination offset invocation-prefix:stack->sibling false)) +(define (reduction:internal->sibling combination offset) + (make-call:stack combination offset invocation-prefix:internal->sibling + false)) -(define (reduction:stack->ancestor combination offset) +(define (reduction:internal->ancestor combination offset) (make-call:stack-with-link combination offset - invocation-prefix:stack->ancestor false)) + invocation-prefix:internal->ancestor false)) ;;;; Calls @@ -387,16 +399,26 @@ MIT in each case. |# (define (make-call:closure combination offset invocation-prefix continuation) (make-call:push-operator combination offset - (lambda (number-pushed) - (let ((operator (combination-known-operator combination))) - ((if (procedure-rest operator) - rtl:make-invocation:lexpr - rtl:make-invocation:jump) - number-pushed - (invocation-prefix combination number-pushed) - continuation - operator))))) + (external-call combination invocation-prefix continuation))) +(define (make-call:open-external combination offset invocation-prefix + continuation) + (scfg*node->node! + (rtl:make-push (rtl:make-fetch register:environment)) + (make-call:dont-push-operator combination offset + (external-call combination invocation-prefix continuation)))) + +(define (external-call combination invocation-prefix continuation) + (lambda (number-pushed) + (let ((operator (combination-known-operator combination))) + ((if (procedure-rest operator) + rtl:make-invocation:lexpr + rtl:make-invocation:jump) + number-pushed + (invocation-prefix combination number-pushed) + continuation + operator)))) + (package (make-call:stack make-call:stack-with-link make-call:child) (define-export (make-call:stack combination offset invocation-prefix @@ -449,14 +471,14 @@ MIT in each case. |# `(MOVE-FRAME-UP ,number-pushed ,(block-frame-size (combination-block combination)))) -(define (invocation-prefix:stack->closure combination number-pushed) +(define (invocation-prefix:internal->closure combination number-pushed) ;; The message sender will shift the new stack frame down to the ;; correct position when it is done, then reset the stack pointer. `(APPLY-CLOSURE ,number-pushed ,(+ number-pushed (block-frame-size (combination-block combination))))) -(define (invocation-prefix:stack->ancestor combination number-pushed) +(define (invocation-prefix:internal->ancestor combination number-pushed) (let ((block (combination-block combination))) `(APPLY-STACK ,number-pushed ,(+ number-pushed (block-frame-size block)) @@ -466,7 +488,7 @@ MIT in each case. |# (procedure-block (combination-known-operator combination))))))) -(define (invocation-prefix:stack->sibling combination number-pushed) +(define (invocation-prefix:internal->sibling combination number-pushed) `(MOVE-FRAME-UP ,number-pushed ;; -1+ means reuse the existing static link. ,(-1+ (block-frame-size (combination-block combination))))) @@ -500,9 +522,8 @@ MIT in each case. |# (let ((n-parameters (+ (length (procedure-required operator)) (length (procedure-optional operator))))) (let ((delta (- n-parameters n-operands))) - (scfg*scfg->scfg! - (scfg*->scfg! (push-n-unassigned delta)) - (finish n-parameters (+ offset delta))))) + (scfg*scfg->scfg! (scfg*->scfg! (push-n-unassigned delta)) + (finish n-parameters (+ offset delta))))) (finish n-operands offset)))))) (define (push-n-unassigned n) @@ -515,8 +536,7 @@ MIT in each case. |# (generate:subproblem subproblem offset (lambda (offset) (scfg*node->node! - (rvalue->sexpression (subproblem-value subproblem) offset - rtl:make-push) + (rvalue->sexpression (subproblem-value subproblem) offset rtl:make-push) (receiver (1+ offset)))))) (define-export make-call:dont-push-operator diff --git a/v7/src/compiler/rtlgen/rtlgen.scm b/v7/src/compiler/rtlgen/rtlgen.scm index 3239acadd..f817e027a 100644 --- a/v7/src/compiler/rtlgen/rtlgen.scm +++ b/v7/src/compiler/rtlgen/rtlgen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 1.7 1987/03/20 05:25:58 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 1.8 1987/04/12 00:22:55 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -47,18 +47,7 @@ MIT in each case. |# quotation (generate:top-level (quotation-fg-entry quotation)))) quotations) - (for-each - (lambda (procedure) - (set-procedure-rtl-entry! - procedure - (scfg*node->node! - ((cond ((ic-procedure? procedure) generate:ic-procedure) - ((closure-procedure? procedure) generate:closure-procedure) - ((stack-procedure? procedure) generate:stack-procedure) - (else (error "Unknown procedure type" procedure))) - procedure) - (generate:top-level (procedure-fg-entry procedure))))) - procedures) + (for-each generate:procedure procedures) (for-each (lambda (rnode) (node-property-remove! rnode generate:node)) *nodes*))))) @@ -91,24 +80,22 @@ MIT in each case. |# (define-integrable (generate:next-is-null? next rest-generator) (and (not next) (not rest-generator))) -(define (generate:ic-procedure procedure) - (make-null-cfg)) - -(define (generate:closure-procedure procedure) - (scfg*scfg->scfg! (if (or (not (null? (procedure-optional procedure))) - (procedure-rest procedure)) - ((if (closure-procedure-needs-operator? procedure) - rtl:make-setup-closure-lexpr - rtl:make-setup-stack-lexpr) - procedure) - (rtl:make-procedure-heap-check procedure)) - (setup-stack-frame procedure))) - -(define (generate:stack-procedure procedure) - (scfg*scfg->scfg! (if (procedure-rest procedure) - (rtl:make-setup-stack-lexpr procedure) - (rtl:make-procedure-heap-check procedure)) - (setup-stack-frame procedure))) +(define (generate:procedure procedure) + (set-procedure-rtl-entry! + procedure + (let ((body (generate:top-level (procedure-fg-entry procedure)))) + (if (procedure/ic? procedure) + body + (scfg*node->node! + (scfg*scfg->scfg! + ((if (or (procedure-rest procedure) + (and (procedure/closure? procedure) + (not (null? (procedure-optional procedure))))) + rtl:make-setup-lexpr + rtl:make-procedure-heap-check) + procedure) + (setup-stack-frame procedure)) + body))))) (define (setup-stack-frame procedure) (let ((block (procedure-block procedure))) @@ -125,15 +112,6 @@ MIT in each case. |# (rtl:make-cell-cons (rtl:make-fetch locative)))) (make-null-cfg))) - (define (close-letrec-procedures names values) - (scfg*->scfg! - (map (lambda (name value) - (if (and (procedure? value) - (closure-procedure? value)) - (letrec-close block name value) - (make-null-cfg))) - names values))) - (let ((names (procedure-names procedure)) (values (procedure-values procedure))) (scfg-append! (setup-bindings names values '()) @@ -144,7 +122,13 @@ MIT in each case. |# (if rest (cellify-variable rest) (make-null-cfg))) - (close-letrec-procedures names values))))) + (scfg*->scfg! + (map (lambda (name value) + (if (and (procedure? value) + (procedure/closure? value)) + (letrec-close block name value) + (make-null-cfg))) + names values)))))) (define (setup-bindings names values pushes) (if (null? names) @@ -159,12 +143,15 @@ MIT in each case. |# (cond ((constant? value) (rtl:make-constant (constant-value value))) ((procedure? value) - (cond ((closure-procedure? value) - (make-closure-cons value (rtl:make-constant '()))) - ((ic-procedure? value) - (make-ic-cons value)) - (else - (error "Bad letrec procedure value" value)))) + (case (procedure/type value) + ((CLOSURE) + (make-closure-cons value (rtl:make-constant '()))) + ((IC) + (make-ic-cons value)) + ((OPEN-EXTERNAL OPEN-INTERNAL) + (error "Letrec value is open procedure" value)) + (else + (error "Unknown procedure type" value)))) (else (error "Unknown letrec binding value" value)))) @@ -246,6 +233,24 @@ MIT in each case. |# expression)))))) (generate:next next offset rest-generator)))) +(define-assignment temporary-tag + (lambda (block temporary rvalue next offset rest-generator + rvalue->sexpression) + (case (temporary-type temporary) + ((#F) + (scfg*node->node! + (if (integrated-vnode? temporary) + (make-null-cfg) + (rvalue->sexpression rvalue offset + (lambda (expression) + (rtl:make-assignment temporary expression)))) + (generate:next next offset rest-generator))) + ((VALUE) + (assignment:value-register block rvalue next offset + rest-generator rvalue->sexpression)) + (else + (error "Unknown temporary type" temporary))))) + (define (assignment:value-register block rvalue next offset rest-generator rvalue->sexpression) (if (not (generate:next-is-null? next rest-generator)) @@ -256,14 +261,14 @@ MIT in each case. |# (rvalue->sexpression rvalue offset (lambda (expression) (rtl:make-assignment register:value expression)))) - (if (stack-procedure-block? block) - (rtl:make-message-sender:value - (+ offset (block-frame-size block))) - (scfg-append! - (if (closure-procedure-block? block) + (if (stack-block? block) + (if (stack-parent? block) + (rtl:make-message-sender:value + (+ offset (block-frame-size block))) + (scfg*scfg->scfg! (rtl:make-pop-frame (block-frame-size block)) - (make-null-cfg)) - (rtl:make-return)))) + (rtl:make-return))) + (rtl:make-return))) (generate:next next offset rest-generator))) (define-assignment value-ignore-tag @@ -272,24 +277,6 @@ MIT in each case. |# (if (not (generate:next-is-null? next rest-generator)) (error "Return node has next")) (generate:next next offset rest-generator))) - -(define-assignment temporary-tag - (lambda (block temporary rvalue next offset rest-generator - rvalue->sexpression) - (case (temporary-type temporary) - ((#F) - (scfg*node->node! - (if (integrated-vnode? temporary) - (make-null-cfg) - (rvalue->sexpression rvalue offset - (lambda (expression) - (rtl:make-assignment temporary expression)))) - (generate:next next offset rest-generator))) - ((VALUE) - (assignment:value-register block rvalue next offset - rest-generator rvalue->sexpression)) - (else - (error "Unknown temporary type" temporary))))) ;;;; Predicates @@ -400,14 +387,17 @@ MIT in each case. |# (define-rvalue->expression procedure-tag (lambda (procedure offset scfg-append! receiver) - (cond ((ic-procedure? procedure) (receiver (make-ic-cons procedure))) - ((closure-procedure? procedure) - (make-closure-environment procedure offset scfg-append! - (lambda (environment) - (receiver (make-closure-cons procedure environment))))) - ((stack-procedure? procedure) - (error "RVALUE->EXPRESSION: Stack procedure reference" procedure)) - (else (error "Unknown procedure type" procedure))))) + (case (procedure/type procedure) + ((CLOSURE) + (make-closure-environment procedure offset scfg-append! + (lambda (environment) + (receiver (make-closure-cons procedure environment))))) + ((IC) + (receiver (make-ic-cons procedure))) + ((OPEN-EXTERNAL OPEN-INTERNAL) + (error "Reference to open procedure" procedure)) + (else + (error "Unknown procedure type" procedure))))) (define (make-ic-cons procedure) ;; IC procedures have their entry points linked into their headers diff --git a/v7/src/compiler/rtlopt/rcse1.scm b/v7/src/compiler/rtlopt/rcse1.scm index 87d13c33e..ba8646118 100644 --- a/v7/src/compiler/rtlopt/rcse1.scm +++ b/v7/src/compiler/rtlopt/rcse1.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/rcse1.scm,v 1.100 1987/03/20 05:14:46 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/rcse1.scm,v 1.101 1987/04/12 00:22:23 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -178,8 +178,7 @@ MIT in each case. |# (stack-invalidate!) (stack-pointer-invalidate!)) -(define-stack-trasher 'SETUP-CLOSURE-LEXPR) -(define-stack-trasher 'SETUP-STACK-LEXPR) +(define-stack-trasher 'SETUP-LEXPR) (define-stack-trasher 'MESSAGE-SENDER:VALUE) (define-cse-method 'INTERPRETER-CALL:ENCLOSE -- 2.25.1