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 00:53:14 +0000 (00:53 +0000)
src/runtime/string.scm

index 9c401d0eef2d617593bf1f65d918ee63f03e62e9..aa09f977f76c50588e199bd5c23d12d48198d162 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)