[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 20/27: Scalar replacement for f64->scm
From: |
Andy Wingo |
Subject: |
[Guile-commits] 20/27: Scalar replacement for f64->scm |
Date: |
Wed, 11 Nov 2015 11:39:14 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit c438998e481ae329c29bf70de4cc40a783e0baf0
Author: Andy Wingo <address@hidden>
Date: Wed Oct 28 22:27:46 2015 +0000
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 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/module/language/cps/cse.scm b/module/language/cps/cse.scm
index 894f779..2e47f37 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)
- [Guile-commits] 04/27: Run CSE to clean up after closure conversion, (continued)
- [Guile-commits] 04/27: Run CSE to clean up after closure conversion, Andy Wingo, 2015/11/11
- [Guile-commits] 01/27: Bootstrap build doesn't have to expand CPS optimizations, Andy Wingo, 2015/11/11
- [Guile-commits] 05/27: Fix slot-allocation to make 'return' not need to alloc-frame, Andy Wingo, 2015/11/11
- [Guile-commits] 07/27: Don't emit redundant reset-frame before return, Andy Wingo, 2015/11/11
- [Guile-commits] 11/27: Remove use of return in disassembler.scm, Andy Wingo, 2015/11/11
- [Guile-commits] 10/27: rtl.test uses return-values, Andy Wingo, 2015/11/11
- [Guile-commits] 13/27: Treat tail $values as generating lazy allocations, Andy Wingo, 2015/11/11
- [Guile-commits] 14/27: VM support for raw slots, Andy Wingo, 2015/11/11
- [Guile-commits] 15/27: Reflection support for unboxed f64 slots, Andy Wingo, 2015/11/11
- [Guile-commits] 06/27: return-values opcode resets the frame, Andy Wingo, 2015/11/11
- [Guile-commits] 20/27: Scalar replacement for f64->scm,
Andy Wingo <=
- [Guile-commits] 21/27: Add fadd, fsub, fmul, fdiv instructions, Andy Wingo, 2015/11/11
- [Guile-commits] 23/27: Fix slot representation computation for fadd, fmul, etc, Andy Wingo, 2015/11/11
- [Guile-commits] 19/27: bv-{f32, f64}-{ref, set!} operate on raw f64 values, Andy Wingo, 2015/11/11
- [Guile-commits] 25/27: Better f64 unboxing for loop vars that might flow to $ktail, Andy Wingo, 2015/11/11
- [Guile-commits] 17/27: Add VM ops to pack and unpack raw f64 values., Andy Wingo, 2015/11/11
- [Guile-commits] 03/27: CSE can run on first-order CPS, Andy Wingo, 2015/11/11
- [Guile-commits] 16/27: Stack slots can hold a double, Andy Wingo, 2015/11/11
- [Guile-commits] 12/27: Remove return opcode, Andy Wingo, 2015/11/11
- [Guile-commits] 09/27: Always emit return-values, Andy Wingo, 2015/11/11
- [Guile-commits] 08/27: Replace return primcalls with $values, Andy Wingo, 2015/11/11