#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/subprb.scm,v 4.4 1988/12/12 21:51:35 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/subprb.scm,v 4.5 1988/12/16 13:13:43 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(simple? 'UNKNOWN)
(free-variables 'UNKNOWN))
-(set-type-object-description!
- subproblem
- (lambda (subproblem)
- (descriptor-list subproblem
- prefix continuation rvalue simple? free-variables)))
-
(define-integrable (subproblem-entry-node subproblem)
(cfg-entry-node (subproblem-prefix subproblem)))
parent
type)
-(set-type-object-description!
- virtual-continuation
- (lambda (continuation)
- `((VIRTUAL-CONTINUATION/CONTEXT
- ,(virtual-continuation/context continuation))
- (VIRTUAL-CONTINUATION/PARENT ,(virtual-continuation/parent continuation))
- (VIRTUAL-CONTINUATION/TYPE ,(virtual-continuation/type continuation)))))
-
(define-integrable (virtual-continuation/make block type)
;; Used exclusively after FG generation.
(virtual-continuation/%make block false type))
#| -*-Scheme-*-
-$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 $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/rcseht.scm,v 4.7 1988/12/16 13:17:18 cph Rel $
Copyright (c) 1988 Massachusetts Institute of Technology
(previous-value false)
(first-value false))
-(set-type-object-description!
- element
- (lambda (element)
- `((ELEMENT-EXPRESSION ,(element-expression element))
- (ELEMENT-COST ,(element-cost element))
- (ELEMENT-IN-MEMORY? ,(element-in-memory? element))
- (ELEMENT-NEXT-HASH ,(element-next-hash element))
- (ELEMENT-PREVIOUS-HASH ,(element-previous-hash element))
- (ELEMENT-NEXT-VALUE ,(element-next-value element))
- (ELEMENT-PREVIOUS-VALUE ,(element-previous-value element))
- (ELEMENT-FIRST-VALUE ,(element-first-value element)))))
-\f
(define (hash-table-lookup hash expression)
(let loop ((element (hash-table-ref hash)))
(and element
(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
(bucket-loop (element-next-hash element)))
(table-loop (1+ i))))))
unspecific)
-\f
+
+(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-copy table)
;; During this procedure, the `element-cost' slots of `table' are
;; reused as "broken hearts".
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/rcserq.scm,v 4.3 1988/08/11 20:11:14 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlopt/rcserq.scm,v 4.4 1988/12/16 13:18:45 cph Rel $
Copyright (c) 1988 Massachusetts Institute of Technology
(first-register false)
(last-register false))
-(set-type-object-description!
- quantity
- (lambda (quantity)
- `((QUANTITY-NUMBER ,(quantity-number quantity))
- (QUANTITY-FIRST-REGISTER ,(quantity-first-register quantity))
- (QUANTITY-LAST-REGISTER ,(quantity-last-register quantity)))))
-
(define (get-register-quantity register)
(or (register-quantity register)
(let ((quantity (new-quantity register)))