[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 02/03: Inline some helpers in intset.scm.
From: |
Andy Wingo |
Subject: |
[Guile-commits] 02/03: Inline some helpers in intset.scm. |
Date: |
Tue, 05 Jan 2016 20:19:56 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit f56f580a4a8d99cec79c5a64d41e1d005c2bac31
Author: Andy Wingo <address@hidden>
Date: Mon Nov 30 12:09:26 2015 +0100
Inline some helpers in intset.scm.
* module/language/cps/intset.scm (round-down): Inline.
(clone-branch-and-set): Inline, and inline the vector-move-left!.
---
module/language/cps/intset.scm | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/module/language/cps/intset.scm b/module/language/cps/intset.scm
index bb35a23..cdf1fbe 100644
--- a/module/language/cps/intset.scm
+++ b/module/language/cps/intset.scm
@@ -117,9 +117,13 @@
(let ((vec (make-vector *branch-size-with-edit* #f)))
(when edit (vector-set! vec *edit-index* edit))
vec))
-(define (clone-branch-and-set branch i elt)
+(define-inlinable (clone-branch-and-set branch i elt)
(let ((new (new-branch #f)))
- (when branch (vector-move-left! branch 0 *branch-size* new 0))
+ (when branch
+ (let lp ((n 0))
+ (when (< n *branch-size*)
+ (vector-set! new n (vector-ref branch n))
+ (lp (1+ n)))))
(vector-set! new i elt)
new))
(define-inlinable (assert-readable! root-edit)
@@ -136,7 +140,7 @@
(and (not (vector-ref branch i))
(lp (1+ i))))))
-(define (round-down min shift)
+(define-inlinable (round-down min shift)
(logand min (lognot (1- (ash 1 shift)))))
(define empty-intset (make-intset 0 *leaf-bits* #f))