There's a new expansion phase to support the open coding of generic
authorMark Friedman <edu/mit/csail/zurich/markf>
Mon, 22 Aug 1988 20:25:43 +0000 (20:25 +0000)
committerMark Friedman <edu/mit/csail/zurich/markf>
Mon, 22 Aug 1988 20:25:43 +0000 (20:25 +0000)
arithmetic. It is essentially there to allow for the open coding of
rtl that you want to be treated as a single statement or expression by
the common subexpression eliminator.

v7/src/compiler/base/toplev.scm

index edab28b663cda9f1e1cf2c31febcfed5d88cc955..605632134815108ac6e5381fa5c2da28c8f3c999 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/toplev.scm,v 4.8 1988/07/16 21:51:09 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/toplev.scm,v 4.9 1988/08/22 20:25:43 markf Exp $
 
 Copyright (c) 1988 Massachusetts Institute of Technology
 
@@ -518,7 +518,9 @@ MIT in each case. |#
       (set! *rtl-graphs* '())
       (set! *ic-procedure-headers* '())
       (initialize-machine-register-map!)
-      (generate/top-level (last-reference *root-expression*))
+      (cleanup-noop-nodes
+       (lambda ()
+        (generate/top-level (last-reference *root-expression*))))
       (set! label->object
            (make/label->object *rtl-expression*
                                *rtl-procedures*
@@ -547,6 +549,9 @@ MIT in each case. |#
     (lambda ()
       (if compiler:cse?
          (phase/common-subexpression-elimination))
+      (cleanup-noop-nodes
+       (lambda ()
+        (phase/rtl-expansion)))
       (phase/lifetime-analysis)
       (if compiler:code-compression?
          (phase/code-compression))
@@ -557,7 +562,12 @@ MIT in each case. |#
   (compiler-subphase "Eliminating Common Subexpressions"
     (lambda ()
       (common-subexpression-elimination *rtl-graphs*))))
-\f(define (phase/lifetime-analysis)
+\f(define (phase/rtl-expansion)
+  (compiler-subphase "Expanding RTL"
+    (lambda ()
+      (rtl-expansion *rtl-graphs*))))
+
+(define (phase/lifetime-analysis)
   (compiler-subphase "Lifetime Analysis"
     (lambda ()
       (lifetime-analysis *rtl-graphs*))))