-;;; -*- Scheme -*-
+#| -*-Scheme-*-
+
+$Id: midend.scm,v 1.2 1994/11/20 20:40:04 adams Exp $
+
+Copyright (c) 1994 Massachusetts Institute of Technology
+
+This material was developed by the Scheme project at the Massachusetts
+Institute of Technology, Department of Electrical Engineering and
+Computer Science. Permission to copy this software, to redistribute
+it, and to use it for any purpose is granted, subject to the following
+restrictions and understandings.
+
+1. Any copy made of this software must include this copyright notice
+in full.
+
+2. Users of this software agree to make their best efforts (a) to
+return to the MIT Scheme project any improvements or extensions that
+they make, so that these may be included in future releases; and (b)
+to inform MIT of noteworthy uses of this software.
+
+3. All materials developed as a consequence of the use of this
+software shall duly acknowledge such use, in accordance with the usual
+standards of acknowledging credit in academic research.
+
+4. MIT has made no warrantee or representation that the operation of
+this software will be error-free, and MIT is under no obligation to
+provide any services, by way of maintenance, update, or otherwise.
+
+5. In conjunction with products arising from the use of this material,
+there shall be no use of the name of the Massachusetts Institute of
+Technology nor of any adaptation thereof in any advertising,
+promotional, or sales literature without prior written consent from
+MIT in each case. |#
(declare (usual-integrations))
;;;; Phase structure
(define *phases-to-show* '())
+(define *phases-to-omit* '())
(define *announce-phases?* false)
(define *debugging?* true)
(define *current-phase-input* false)
(or (eq? switch 'ALL)
(memq phase switch)))))
+ (define (run-phase program)
+ (if (memq this-phase *phases-to-omit*)
+ (copier/top-level program copier/remember)
+ (proc program)))
+
(lambda (program)
(set! *current-phase* this-phase)
(set! *current-phase-input* (and *debugging?* program))
(write-string ";; Phase ")
(write this-phase)))
(if (not (show? this-phase))
- (proc program)
+ (run-phase program)
(begin
(with-kmp-output-port
(lambda ()
(show-program "Input to phase " program)))
- (let ((result (proc program)))
+ (let ((result (run-phase program)))
(if (show? next-phase)
(set! pending-message
(with-output-to-string
simplify/top-level/5 ; as above
cleanup/top-level/6 ; as above
+ ;;simplify/top-level
+ ;;cleanup/top-level
+ ;;simplify/top-level
+ ;;cleanup/top-level
+
laterew/top-level ; rewrite &+, vector-cons,
cleanup/top-level/7 ; as above
compat/top-level ; rewrite code for compatibility