Removed %vector-index expressions and the indexify phase. The index
authorStephen Adams <edu/mit/csail/zurich/adams>
Sun, 6 Aug 1995 19:50:08 +0000 (19:50 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Sun, 6 Aug 1995 19:50:08 +0000 (19:50 +0000)
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).

v8/src/compiler/midend/closconv.scm

index 7651fcc13a219d0da34f878588097075060337d4..2407841fd661d891d5a7c8901b291f155425c51f 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: closconv.scm,v 1.9 1995/08/04 19:47:20 adams Exp $
+$Id: closconv.scm,v 1.10 1995/08/06 19:50:08 adams Exp $
 
 Copyright (c) 1994-1995 Massachusetts Institute of Technology
 
@@ -557,10 +557,7 @@ MIT in each case. |#
             `(CALL (QUOTE ,%closure-ref)
                    (QUOTE #F)
                    (LOOKUP ,closure-name)
-                   (CALL (QUOTE ,%vector-index)
-                         (QUOTE #F)
-                         (QUOTE ,closed-over-names)
-                         (QUOTE ,name))
+                   (QUOTE ,closed-over-names)
                    (QUOTE ,name)))
           (define (dbg-reference-expression)
             (dbg/make-closure-ref %closure-ref
@@ -678,10 +675,7 @@ MIT in each case. |#
                                (list
                                 (closconv/closure/make-set!
                                  name
-                                 `(CALL (QUOTE ,%vector-index)
-                                        (QUOTE #F)
-                                        (QUOTE ,captured-names)
-                                        (QUOTE ,name*))
+                                 `(QUOTE ,captured-names)
                                  name*)))))
                        circular)))
                   closed circ-results circular)))))