From: Chris Hanson Date: Mon, 29 Aug 1988 23:19:44 +0000 (+0000) Subject: Redefine expression-cost computation to be mostly machine independent. X-Git-Tag: 20090517-FFI~12564 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=ce9f9b4a98268be8ef2b54c3665886741e9dc884;p=mit-scheme.git Redefine expression-cost computation to be mostly machine independent. --- diff --git a/v7/src/compiler/rtlopt/rcseht.scm b/v7/src/compiler/rtlopt/rcseht.scm index 24cd6c30e..b0cd5a082 100644 --- a/v7/src/compiler/rtlopt/rcseht.scm +++ b/v7/src/compiler/rtlopt/rcseht.scm @@ -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))))))) (define (hash-table-delete! hash element) (if element