From: Stephen Adams Date: Sun, 6 Aug 1995 22:26:53 +0000 (+0000) Subject: Removed %vector-index expressions and the indexify phase. The index X-Git-Tag: 20090517-FFI~6060 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=c781f0bc9a6a46c1f2303ef69ba3f2284588d364;p=mit-scheme.git Removed %vector-index expressions and the indexify phase. The index computation is now implicit and handled by rtlgen and dbgred. Looking at the structure of some large programs (e.g. symb in nscmutils) revealed that up to 32% of the text of a program was %vector-index expressions. These get copied in every pass after closconv/2. The `elegance' is not worth the performance hit. About 30% of the remaining text is %stack-closure-ref expressions. The overhead could be reduced by introducing another KMP special form (which would also mean that the DBG info would not need to compress the expressions, saving time). --- diff --git a/v8/src/compiler/midend/cleanup.scm b/v8/src/compiler/midend/cleanup.scm index 648516218..2dae08ea0 100644 --- a/v8/src/compiler/midend/cleanup.scm +++ b/v8/src/compiler/midend/cleanup.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: cleanup.scm,v 1.22 1995/07/24 17:38:03 adams Exp $ +$Id: cleanup.scm,v 1.23 1995/08/06 22:26:35 adams Exp $ Copyright (c) 1994-1995 Massachusetts Institute of Technology @@ -615,8 +615,8 @@ MIT in each case. |# (else (internal-error "Unrecognized easy form" form)))) -(define cleanup/trivial/ops - (list %vector-index)) +(define cleanup/trivial/ops '()) +; (list %vector-index) (define cleanup/easy/ops (append cleanup/trivial/ops diff --git a/v8/src/compiler/midend/simplify.scm b/v8/src/compiler/midend/simplify.scm index 73670d0d5..c890221c3 100644 --- a/v8/src/compiler/midend/simplify.scm +++ b/v8/src/compiler/midend/simplify.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: simplify.scm,v 1.15 1995/07/06 21:27:14 adams Exp $ +$Id: simplify.scm,v 1.16 1995/08/06 22:26:53 adams Exp $ Copyright (c) 1994-1995 Massachusetts Institute of Technology @@ -512,7 +512,7 @@ MIT in each case. |# (define (cost operator value) (hash-table/put! *simplify/operator-open-coding-costs* operator value)) (cost not 0) - (cost %vector-index -2) + ;;(cost %vector-index -2) (cost %heap-closure-ref -2) (cost %stack-closure-ref -2))