[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 05/09: Intset-next micro-optimizations
From: |
Andy Wingo |
Subject: |
[Guile-commits] 05/09: Intset-next micro-optimizations |
Date: |
Wed, 08 Apr 2015 15:21:05 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit 048d5d340ec2657f62dc2dbb4895186aa4ab22ad
Author: Andy Wingo <address@hidden>
Date: Tue Mar 31 12:11:22 2015 +0200
Intset-next micro-optimizations
* module/language/cps/intset.scm (intset-next): Micro-optimizations.
---
module/language/cps/intset.scm | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/module/language/cps/intset.scm b/module/language/cps/intset.scm
index a6d3640..175b9e5 100644
--- a/module/language/cps/intset.scm
+++ b/module/language/cps/intset.scm
@@ -236,20 +236,20 @@
(define (visit-branch node shift i)
(let lp ((i i) (idx (logand (ash i (- shift)) *branch-mask*)))
(and (< idx *branch-size*)
- (or (visit-node (vector-ref node idx) shift i)
+ (or (let ((node (vector-ref node idx)))
+ (and node (visit-node node shift i)))
(let ((inc (ash 1 shift)))
(lp (+ (round-down i shift) inc) (1+ idx)))))))
(define (visit-node node shift i)
- (and node
- (if (= shift *leaf-bits*)
- (visit-leaf node i)
- (visit-branch node (- shift *branch-bits*) i))))
+ (if (= shift *leaf-bits*)
+ (visit-leaf node i)
+ (visit-branch node (- shift *branch-bits*) i)))
(match bs
(($ <intset> min shift root)
(let ((i (if (and i (< min i))
(- i min)
0)))
- (and (< i (ash 1 shift))
+ (and root (< i (ash 1 shift))
(let ((i (visit-node root shift i)))
(and i (+ min i))))))))
- [Guile-commits] branch master updated (50fcdfe -> eb9d442), Andy Wingo, 2015/04/08
- [Guile-commits] 01/09: Default "meet" operator is meet-error for intmap, Andy Wingo, 2015/04/08
- [Guile-commits] 02/09: Add intmap-prev, Andy Wingo, 2015/04/08
- [Guile-commits] 03/09: Add intmap-fold., Andy Wingo, 2015/04/08
- [Guile-commits] 04/09: Add intset-fold, intset-fold2, Andy Wingo, 2015/04/08
- [Guile-commits] 06/09: 32-way branching in intmap.scm, not 16-way, Andy Wingo, 2015/04/08
- [Guile-commits] 07/09: Add "transient" intmap interface, Andy Wingo, 2015/04/08
- [Guile-commits] 08/09: Transient intsets, Andy Wingo, 2015/04/08
- [Guile-commits] 05/09: Intset-next micro-optimizations,
Andy Wingo <=
- [Guile-commits] 09/09: Add "cps2" experiment, Andy Wingo, 2015/04/08