[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 08/30: Revert "Slot allocation allows s64/u64 representa
From: |
Andy Wingo |
Subject: |
[Guile-commits] 08/30: Revert "Slot allocation allows s64/u64 representations of same var" |
Date: |
Fri, 24 Nov 2017 09:24:20 -0500 (EST) |
wingo pushed a commit to branch master
in repository guile.
commit 5c38643fc66cbc8efa4907c5eb467d9093ef19a9
Author: Andy Wingo <address@hidden>
Date: Mon Nov 20 18:00:15 2017 +0100
Revert "Slot allocation allows s64/u64 representations of same var"
This reverts commit a88614fb17ed7a3c7d891907414222fc8a9ccd24.
---
module/language/cps/slot-allocation.scm | 17 ++++-------------
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/module/language/cps/slot-allocation.scm
b/module/language/cps/slot-allocation.scm
index 992639f..4315c55 100644
--- a/module/language/cps/slot-allocation.scm
+++ b/module/language/cps/slot-allocation.scm
@@ -744,13 +744,6 @@ are comparable with eqv?. A tmp slot may be used."
(match (intmap-ref cps k)
(($ $kargs names vars) vars)
(_ '())))
- (define (meet-s64-u64 old new)
- (cond
- ((and (eq? old 's64) (eq? new 'u64))
- 'u64)
- ((and (eq? old 'u64) (eq? new 's64))
- 'u64)
- (error "incompatible representations" old new)))
(intmap-fold
(lambda (label cont representations)
(match cont
@@ -761,8 +754,7 @@ are comparable with eqv?. A tmp slot may be used."
(match exp
(($ $values (arg))
(intmap-add representations var
- (intmap-ref representations arg)
- meet-s64-u64))
+ (intmap-ref representations arg)))
(($ $primcall (or 'scm->f64 'load-f64
'bv-f32-ref 'bv-f64-ref
'fadd 'fsub 'fmul 'fdiv))
@@ -775,12 +767,12 @@ are comparable with eqv?. A tmp slot may be used."
'uadd/immediate 'usub/immediate 'umul/immediate
'ursh/immediate 'ulsh/immediate
'bv-u8-ref 'bv-u16-ref 'bv-u32-ref 'bv-u64-ref))
- (intmap-add representations var 'u64 meet-s64-u64))
+ (intmap-add representations var 'u64))
(($ $primcall (or 'untag-fixnum
'scm->s64 'load-s64 'u64->s64
'srsh 'srsh/immediate
'bv-s8-ref 'bv-s16-ref 'bv-s32-ref 'bv-s64-ref))
- (intmap-add representations var 's64 meet-s64-u64))
+ (intmap-add representations var 's64))
(_
(intmap-add representations var 'scm))))
(vars
@@ -788,8 +780,7 @@ are comparable with eqv?. A tmp slot may be used."
(($ $values args)
(fold (lambda (arg var representations)
(intmap-add representations var
- (intmap-ref representations arg)
- meet-s64-u64))
+ (intmap-ref representations arg)))
representations args vars))))))
(($ $kfun src meta self)
(intmap-add representations self 'scm))
- [Guile-commits] branch master updated (0951551 -> 7d71d9b), Andy Wingo, 2017/11/24
- [Guile-commits] 01/30: ursh, ursh/immediate, etc only residualized if count < 64, Andy Wingo, 2017/11/24
- [Guile-commits] 05/30: Fix s64->scm reducer, Andy Wingo, 2017/11/24
- [Guile-commits] 02/30: Revert specialization of fixnum phi variables, Andy Wingo, 2017/11/24
- [Guile-commits] 09/30: Fix logand type inference, Andy Wingo, 2017/11/24
- [Guile-commits] 08/30: Revert "Slot allocation allows s64/u64 representations of same var",
Andy Wingo <=
- [Guile-commits] 07/30: Fix u64/s64 typesafety around fixnum (un)tagging, Andy Wingo, 2017/11/24
- [Guile-commits] 14/30: Fix type check elision for branches, Andy Wingo, 2017/11/24
- [Guile-commits] 06/30: Separate u64 and s64 type inferrers now that ops are monomorphic, Andy Wingo, 2017/11/24
- [Guile-commits] 18/30: Remove thunk?, integer? simple predicate inferrers, Andy Wingo, 2017/11/24
- [Guile-commits] 17/30: Add support for bignum? CPS primitive., Andy Wingo, 2017/11/24
- [Guile-commits] 22/30: Fix inference of generic < on NaN values, Andy Wingo, 2017/11/24
- [Guile-commits] 20/30: Add &exact-number helper definition, Andy Wingo, 2017/11/24
- [Guile-commits] 03/30: Better support for unboxed signed arithmetic, Andy Wingo, 2017/11/24
- [Guile-commits] 30/30: Optimize check-urange in assembler.scm, Andy Wingo, 2017/11/24
- [Guile-commits] 27/30: Add integer devirtualization pass., Andy Wingo, 2017/11/24