Use integrated %dispatch-tag-ref in record type predicates.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 4 Jan 2019 05:09:26 +0000 (05:09 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 4 Jan 2019 06:18:23 +0000 (06:18 +0000)
These show up hot in profiles, so this makes a difference.

src/runtime/record.scm
src/runtime/runtime.pkg

index 63110b90e82e92731141963df9f6d460033b69ac..bfaee352468582ee0ca7a156e31eba48d578ac05 100644 (file)
@@ -31,6 +31,7 @@ USA.
 ;;; conforms to R4RS proposal
 
 (declare (usual-integrations))
+(declare (integrate-external "dispatch-tag"))
 
 (define-primitives
   (vector-cons 2))
@@ -161,7 +162,7 @@ USA.
   (dispatch-tag-extra-ref record-type 2))
 
 (define-integrable (%record-type-instance-marker record-type)
-  (dispatch-tag-extra-ref record-type 3))
+  (%dispatch-tag-extra-ref record-type 3))
 
 (define-integrable (%set-record-type-instance-marker! record-type marker)
   (%dispatch-tag-extra-set! record-type 3 marker))
index f150d7a4eb651f2c713b70bee6928b8897eac069..75d9f931bf2ffada149c116bd6ec6e44c53e3bbb 100644 (file)
@@ -5377,6 +5377,7 @@ USA.
          probe-cache-4)
   (export (runtime record)
          %dispatch-tag-extra-index
+         %dispatch-tag-extra-ref
          %dispatch-tag-extra-set!))
 
 (define-package (runtime crypto)