Make new interface for using noop nodes that controls both allocation
authorChris Hanson <org/chris-hanson/cph>
Mon, 31 Aug 1987 21:17:26 +0000 (21:17 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 31 Aug 1987 21:17:26 +0000 (21:17 +0000)
and deletion of the nodes.

v7/src/compiler/base/cfg2.scm

index e8840172db9324a0993388365f11486356c06e93..90199979ca5a7bd909a7555539d4d7fdb4f23fb7 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/cfg2.scm,v 1.2 1987/08/07 17:03:02 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/cfg2.scm,v 1.3 1987/08/31 21:17:26 cph Exp $
 
 Copyright (c) 1987 Massachusetts Institute of Technology
 
@@ -117,21 +117,22 @@ MIT in each case. |#
 \f
 ;;;; Noops
 
-(define noop-node-tag (make-vector-tag snode-tag 'NOOP))
 (define *noop-nodes*)
 
+(define (cleanup-noop-nodes thunk)
+  (fluid-let ((*noop-nodes* '()))
+    (let ((value (thunk)))
+      (for-each snode-delete! *noop-nodes*)
+      value)))
+
+(define noop-node-tag
+  (make-vector-tag snode-tag 'NOOP))
+
 (define-integrable (make-noop-node)
   (let ((node (make-snode noop-node-tag)))
     (set! *noop-nodes* (cons node *noop-nodes*))
     node))
 
-(define (delete-noop-nodes!)
-  (for-each snode-delete! *noop-nodes*)
-  (set! *noop-nodes* '()))
-
-(define (constant->pcfg value)
-  ((if value make-true-pcfg make-false-pcfg)))
-
 (define (make-false-pcfg)
   (let ((node (make-noop-node)))
     (make-pcfg node