Integrate some subroutines that turn up hot in profiles.
authorTaylor R Campbell <campbell@mumble.net>
Wed, 29 May 2019 00:53:14 +0000 (00:53 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 29 May 2019 05:01:02 +0000 (05:01 +0000)
(cherry picked from commit 8f4e491fd35266b0c052866a1476c57d4a292a68)

src/runtime/string.scm

index c2fc9a9da3fe1eca0caa45a09be007369edb9697..a2c4f09120ab3df13b0ae92dd4ea03125f81a9f3 100644 (file)
@@ -285,6 +285,7 @@ USA.
 \f
 ;;;; String slices
 
+(declare (integrate-operator slice?))
 (define (slice? object)
   (and (%record? object)
        (fix:= 4 (%record-length object))
@@ -300,17 +301,20 @@ USA.
 (define-integrable (slice-start slice) (%record-ref slice 2))
 (define-integrable (slice-length slice) (%record-ref slice 3))
 
+(declare (integrate-operator slice-end))
 (define (slice-end slice)
   (fix:+ (slice-start slice) (slice-length slice)))
 
 (define (slice-mutable? slice)
   (ustring-mutable? (slice-string slice)))
 
+(declare (integrate-operator unpack-slice))
 (define (unpack-slice string k)
   (if (slice? string)
       (k (slice-string string) (slice-start string) (slice-end string))
       (k string 0 (ustring-length string))))
 
+(declare (integrate-operator translate-slice))
 (define (translate-slice string start end k)
   (if (slice? string)
       (k (slice-string string)