Add STACK-LEAF? element to RTL procedure objects. This element, if
authorChris Hanson <org/chris-hanson/cph>
Wed, 30 Sep 1992 19:23:21 +0000 (19:23 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 30 Sep 1992 19:23:21 +0000 (19:23 +0000)
true, says that the procedure does not push any stack frames.

v7/src/compiler/rtlbase/rtlobj.scm
v7/src/compiler/rtlgen/rtlgen.scm

index 3f2fa8c94ab05f56ec1a36e8c7131ac8cd761911..8fb10dcd4f3de2122051f580b4d875879753b095 100644 (file)
@@ -1,8 +1,8 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlbase/rtlobj.scm,v 4.9 1990/08/21 02:24:08 jinx Rel $
+$Id: rtlobj.scm,v 4.10 1992/09/30 19:22:47 cph Exp $
 
-Copyright (c) 1988, 1989 Massachusetts Institute of Technology
+Copyright (c) 1988-92 Massachusetts Institute of Technology
 
 This material was developed by the Scheme project at the Massachusetts
 Institute of Technology, Department of Electrical Engineering and
@@ -59,7 +59,7 @@ MIT in each case. |#
                                        n-optional rest? closure?
                                        dynamic-link? type
                                        debugging-info
-                                       next-continuation-offset))
+                                       next-continuation-offset stack-leaf?))
                   (print-procedure
                    (standard-unparser (symbol->string 'RTL-PROCEDURE)
                      (lambda (state procedure)
@@ -77,7 +77,8 @@ MIT in each case. |#
   (type false read-only true)
   (%external-label false)
   (debugging-info false read-only true)
-  (next-continuation-offset false read-only true))
+  (next-continuation-offset false read-only true)
+  (stack-leaf? false read-only true))
 
 (define-integrable (rtl-procedure/entry-node procedure)
   (edge-right-node (rtl-procedure/entry-edge procedure)))
index 537f7434bb46e34d4a641130fd8e1bd2acf34bd7..15e9dfc32188bcce392aaac7333937973f0c8c19 100644 (file)
@@ -1,8 +1,8 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 4.26 1991/04/03 00:51:09 cph Exp $
+$Id: rtlgen.scm,v 4.27 1992/09/30 19:23:21 cph Exp $
 
-Copyright (c) 1988-91 Massachusetts Institute of Technology
+Copyright (c) 1988-92 Massachusetts Institute of Technology
 
 This material was developed by the Scheme project at the Massachusetts
 Institute of Technology, Department of Electrical Engineering and
@@ -125,7 +125,14 @@ MIT in each case. |#
              true))
        (procedure/type procedure)
        (procedure-debugging-info procedure)
-       (block/next-continuation-offset (procedure-block procedure) 0)))))
+       (block/next-continuation-offset (procedure-block procedure) 0)
+       (let ((block (procedure-block procedure)))
+        (and (stack-block? block)
+             (for-all? (block-children block)
+               (lambda (block)
+                 (and (continuation-block? block)
+                      (continuation/always-known-operator?
+                       (block-procedure block)))))))))))
 
 (define (generate/procedure-entry/inline procedure)
   (generate/procedure-header procedure