From ce9f9b4a98268be8ef2b54c3665886741e9dc884 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Mon, 29 Aug 1988 23:19:44 +0000 Subject: [PATCH] Redefine expression-cost computation to be mostly machine independent. --- v7/src/compiler/rtlopt/rcseht.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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 -- 2.25.1