From 15a26cf1e2e15e77ae2c9a49edcccafbcda723a6 Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Fri, 2 Feb 2018 15:39:41 +0300 Subject: [PATCH] Don't maybe-inline two-arg-char-equal. It expands into a lot of code and saves only on function calls. It prevents the transform for constant characters from firing. --- src/code/target-char.lisp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/code/target-char.lisp b/src/code/target-char.lisp index 3c7b25232..edd94b9cf 100644 --- a/src/code/target-char.lisp +++ b/src/code/target-char.lisp @@ -16,7 +16,7 @@ (declaim (inline standard-char-p graphic-char-p alpha-char-p alphanumericp)) (declaim (maybe-inline upper-case-p lower-case-p both-case-p - digit-char-p two-arg-char-equal)) + digit-char-p)) (deftype char-code () `(integer 0 (,sb!xc:char-code-limit))) @@ -662,6 +662,7 @@ is either numeric or alphabetic." code down-code))))) +(declaim (inline two-arg-char-equal)) (defun two-arg-char-equal (c1 c2) (flet ((base-char-equal-p () (let* ((code1 (char-code c1)) @@ -691,8 +692,8 @@ is either numeric or alphabetic." (= (aref cases (1+ index)) (char-code c2)))))))) (defun two-arg-char-not-equal (c1 c2) - (declare (inline two-arg-char-equal)) (not (two-arg-char-equal c1 c2))) +(declaim (notinline two-arg-char-equal)) (macrolet ((def (name test doc) `(defun ,name (character &rest more-characters) -- 2.11.4.GIT