guile-commits
[Top][All Lists]
Advanced

[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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]