Redefine expression-cost computation to be mostly machine independent.
authorChris Hanson <org/chris-hanson/cph>
Mon, 29 Aug 1988 23:19:44 +0000 (23:19 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 29 Aug 1988 23:19:44 +0000 (23:19 +0000)
v7/src/compiler/rtlopt/rcseht.scm

index 24cd6c30e8d95c035d2386cded5acb0a518810f7..b0cd5a08209a9c75f362597aafd10d5275d9ff74 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/rcseht.scm,v 4.5 1988/08/11 20:11:06 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/rcseht.scm,v 4.6 1988/08/29 23:19:44 cph Exp $
 
 Copyright (c) 1988 Massachusetts Institute of Technology
 
@@ -119,6 +119,19 @@ MIT in each case. |#
                   (else
                    (loop next (element-next-value next)))))))
     element))
+
+(define (rtl:expression-cost expression)
+  (case (rtl:expression-type expression)
+    ((REGISTER) 1)
+    ((CONSTANT) (rtl:constant-cost (rtl:constant-value expression)))
+    (else
+     (let loop ((parts (cdr expression)) (cost 2))
+       (if (null? parts)
+          cost
+          (loop (cdr parts)
+                (if (pair? (car parts))
+                    (+ cost (rtl:expression-cost (car parts)))
+                    cost)))))))
 \f
 (define (hash-table-delete! hash element)
   (if element