From b3af773e19a7b940c102a18988d46c7a95e61231 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Wed, 30 Sep 1992 19:23:21 +0000 Subject: [PATCH] Add STACK-LEAF? element to RTL procedure objects. This element, if true, says that the procedure does not push any stack frames. --- v7/src/compiler/rtlbase/rtlobj.scm | 9 +++++---- v7/src/compiler/rtlgen/rtlgen.scm | 13 ++++++++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/v7/src/compiler/rtlbase/rtlobj.scm b/v7/src/compiler/rtlbase/rtlobj.scm index 3f2fa8c94..8fb10dcd4 100644 --- a/v7/src/compiler/rtlbase/rtlobj.scm +++ b/v7/src/compiler/rtlbase/rtlobj.scm @@ -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))) diff --git a/v7/src/compiler/rtlgen/rtlgen.scm b/v7/src/compiler/rtlgen/rtlgen.scm index 537f7434b..15e9dfc32 100644 --- a/v7/src/compiler/rtlgen/rtlgen.scm +++ b/v7/src/compiler/rtlgen/rtlgen.scm @@ -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 -- 2.25.1