Added constant-folding of %fixnum->flonum.
authorStephen Adams <edu/mit/csail/zurich/adams>
Sat, 20 Jul 1996 23:03:03 +0000 (23:03 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Sat, 20 Jul 1996 23:03:03 +0000 (23:03 +0000)
v8/src/compiler/midend/cleanup.scm

index 0a04366c8c76b0a8a8ed02cd85a62e00d2cd4882..ac6db2e88c9dd70f09bee3b743bed487fa9190ba 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: cleanup.scm,v 1.29 1996/03/09 18:28:42 adams Exp $
+$Id: cleanup.scm,v 1.30 1996/07/20 23:03:03 adams Exp $
 
 Copyright (c) 1994-1996 Massachusetts Institute of Technology
 
@@ -407,6 +407,12 @@ MIT in each case. |#
         (QUOTE/? e2)
         `(QUOTE ,(eq? (quote/text e1) (quote/text e2))))))
 
+(define-cleanup-rewrite %fixnum->flonum 1
+  (lambda (expr)
+    (and (QUOTE/? expr)
+        (fixnum? (quote/text expr))
+        `(QUOTE ,(exact->inexact (quote/text expr))))))
+
 (let ((NOT-primitive  (make-primitive-procedure 'NOT)))
   (define (form-absorbs-not? form)
     ;; Assumption: open-coded (non out-of-line) predicates can be compiled