From c438998e481ae329c29bf70de4cc40a783e0baf0 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 28 Oct 2015 22:27:46 +0000 Subject: [PATCH] Scalar replacement for f64->scm * module/language/cps/cse.scm (compute-equivalent-subexpressions): Scalar replacement for float boxes. --- module/language/cps/cse.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/module/language/cps/cse.scm b/module/language/cps/cse.scm index 894f7798e..2e47f379c 100644 --- a/module/language/cps/cse.scm +++ b/module/language/cps/cse.scm @@ -299,6 +299,14 @@ false. It could be that both true and false proofs are available." (add-def! `(primcall struct-ref ,struct ,n) val)) (('primcall 'struct-set!/immediate struct n val) (add-def! `(primcall struct-ref/immediate ,struct ,n) val)) + (('primcall 'scm->f64 scm) + (match defs + ((f64) + (add-def! `(primcall f64->scm ,f64) scm)))) + (('primcall 'f64->scm f64) + (match defs + ((scm) + (add-def! `(primcall scm->f64 ,scm) f64)))) (_ #t)))) (define (visit-label label equiv-labels var-substs)