[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 05/27: Fix slot-allocation to make 'return' not need to
From: |
Andy Wingo |
Subject: |
[Guile-commits] 05/27: Fix slot-allocation to make 'return' not need to alloc-frame |
Date: |
Wed, 11 Nov 2015 11:39:07 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit 34f3fb78e09dd3220cfc615ffc0850d1bf344438
Author: Andy Wingo <address@hidden>
Date: Wed Oct 28 10:14:30 2015 +0000
Fix slot-allocation to make 'return' not need to alloc-frame
* module/language/cps/slot-allocation.scm (compute-frame-sizes): Ensure
that frames with `return' have space to shuffle the arg into return
position.
---
module/language/cps/slot-allocation.scm | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/module/language/cps/slot-allocation.scm
b/module/language/cps/slot-allocation.scm
index b306898..423da2c 100644
--- a/module/language/cps/slot-allocation.scm
+++ b/module/language/cps/slot-allocation.scm
@@ -660,6 +660,9 @@ are comparable with eqv?. A tmp slot may be used."
(call-size label (1+ (length args)) size))
(($ $values args)
(shuffle-size (get-shuffles label) size))
+ (($ $primcall 'return (arg))
+ ;; Return will shuffle arg into fp-relative slot 1.
+ (max size 2))
(_ size)))))
(($ $kreceive)
(values frame-sizes clause
- [Guile-commits] branch master updated (c99f9ba -> ac5a05d), Andy Wingo, 2015/11/11
- [Guile-commits] 22/27: Add new pass to specialize "add" into "fadd" where possible, Andy Wingo, 2015/11/11
- [Guile-commits] 27/27: Bump bytecode version, Andy Wingo, 2015/11/11
- [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 <=
- [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, 2015/11/11
- [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