Change simplicity analysis: previously all inline coded combinations
authorChris Hanson <org/chris-hanson/cph>
Sat, 21 Jan 1989 09:09:28 +0000 (09:09 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 21 Jan 1989 09:09:28 +0000 (09:09 +0000)
were treated as simple, now there are some (e.g. generic arithmetic)
which are not.  There is still a problem relating to type checking
which could cause problems: if a type or range check fails in an
otherwise simple inlined combination, the exception handling is not
simple.  This should be fixed without making the entire combination
non-simple.

v7/src/compiler/fgopt/simple.scm

index 252c9de4fe070567ef7cc8138d210e9de8e3febb..7d88a0022558bb75b31ebae39f0572a665c7c806 100644 (file)
@@ -1,8 +1,8 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fgopt/simple.scm,v 4.3 1988/12/12 21:52:08 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fgopt/simple.scm,v 4.4 1989/01/21 09:09:28 cph Rel $
 
-Copyright (c) 1987 Massachusetts Institute of Technology
+Copyright (c) 1987, 1989 Massachusetts Institute of Technology
 
 This material was developed by the Scheme project at the Massachusetts
 Institute of Technology, Department of Electrical Engineering and
@@ -79,7 +79,8 @@ MIT in each case. |#
     ((APPLICATION)
      (case (application-type node)
        ((COMBINATION)
-       (if (combination/inline? node)
+       (if (and (combination/inline? node)
+                (combination/inline/simple? node))
            (walk/return-operator (combination/continuation node) continuation)
            (let ((callee (rvalue-known-value (combination/operator node))))
              (and callee