From: Chris Hanson Date: Mon, 7 Nov 1988 23:50:50 +0000 (+0000) Subject: Kill dead registers when not doing control merge. X-Git-Tag: 20090517-FFI~12416 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b7da9795ff1e497d27a6aef766b865451dfbc953;p=mit-scheme.git Kill dead registers when not doing control merge. --- diff --git a/v7/src/compiler/back/lapgn1.scm b/v7/src/compiler/back/lapgn1.scm index bf2a5c4da..fd2d28dd2 100644 --- a/v7/src/compiler/back/lapgn1.scm +++ b/v7/src/compiler/back/lapgn1.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/lapgn1.scm,v 4.5 1988/11/07 14:08:14 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/lapgn1.scm,v 4.6 1988/11/07 23:50:50 cph Rel $ Copyright (c) 1987, 1988 Massachusetts Institute of Technology @@ -83,7 +83,14 @@ MIT in each case. |# ;; register map at this point. (loop next (empty-register-map))) ((null? (cdr previous)) - (loop next (bblock-register-map (edge-left-node edge)))) + (loop + next + (let ((previous (edge-left-node edge))) + (delete-pseudo-registers + (bblock-register-map previous) + (regset->list + (regset-difference (bblock-live-at-exit previous) + (bblock-live-at-entry next))))))) (else (let ((entry (or (assq next *pending-bblocks*)