From nobody Mon Jun  3 18:32:08 2024
X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VtMlD6ZBMz5Jmq2;
	Mon, 03 Jun 2024 18:32:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4VtMlD68Dfz4N7d;
	Mon,  3 Jun 2024 18:32:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1717439528;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=piqRJ0MNyYi6zLnCtGjqZv8OmceaeopFKl3w/Ir8d48=;
	b=ceKt/5UBGmoWBhImoZo9XKt9P7RRp75rQf9LPHIQ+gZsepBzZHdJF2r56rdJZnKj0si3u8
	sKD9pkW6BcPxok6awgTZ29gutYraVpW8icJ1lJRoS0VJKWTuQNENaZJtES+nFja/tOCTq6
	EDjqau/sXOM9EHaCoKTH6zAfyqkPMyC0wlOkknZJJRGGslxxPtnGd0ohct5b/Vf03mM/rz
	949vxmhSxGP0qNlvB1RqcmRN2zm54N156liRMwOWczjIBEHuGAeHQ3MgZj7cg3gB2LgcbQ
	Wh8fhP04MYt/ORiqDvHMCvZJfB2pSoewiUbymugVMIfOPBudQICNIIL5ZGtJuQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1717439528; a=rsa-sha256; cv=none;
	b=YC0t1DrErP68GQs2nR7yvpUwAvgz/kyDLRDVkVtbvGx5hpOMwhv6jwZB+FJbARSszjpnXj
	kzgED3XtwTvsTjOFp9RaR6KukY2JOLxoDwEIgEJujBbvFAfXRqGteuKHMFbiFtVCyF8ySB
	8VU0Nu+og3STvOSoQppypNYB3YEegQHcAqlg8xe348npXlVGsfORDpNesBbq3QM9aIQPeO
	pyC6OitHZ2oaEvmw9O8Vuw5+QfEiAMdJjYhT7rWm0JpXIUP8qlPDOXjWg2iz9kkds04mPf
	pVCZ8BROHmKfthJGiR33fklhMZehjjHeHcuFeIBcVvI+gpa5T+cfUsN1e9Xj3A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1717439528;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=piqRJ0MNyYi6zLnCtGjqZv8OmceaeopFKl3w/Ir8d48=;
	b=Yp3b5JcCpgPnPA0i19FHxhcgGiJFvIohmiKu1dfKg85UjTjvOm6qUtUb3Z+4pOhvHuHHrK
	iMEzvc/SMD8zHC3hIMzbJt7eTjILNVaxSn4J8JsnnlOIcRdCXBcf5OR6clt6qp/8w24IGZ
	Kbs4evJauTGFCATwUKcVTrxaixPFdXDhb+aTQl73hREpIlXvTA93B2mp7SJ2YBTiniUSj8
	EB/Ws2hrISjkM6oLU2wwhyJQjbtf63r58c0wAyPBijINCfYrQDXqIFy0f5LgTfWGWUbZPy
	e1662BmRIA9KDX/IXyhn2+pxnKgxbiusJod1XPWMiaZUQGzPbR+OHOB74cm8dA==
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4VtMlD5lYbzlqs;
	Mon,  3 Jun 2024 18:32:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 453IW8UD080804;
	Mon, 3 Jun 2024 18:32:08 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 453IW87i080801;
	Mon, 3 Jun 2024 18:32:08 GMT
	(envelope-from git)
Date: Mon, 3 Jun 2024 18:32:08 GMT
Message-Id: <202406031832.453IW87i080801@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: 749c249dc3b6 - main - subr_pctrie: use ilog2(x) instead
  of fls(x)-1
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
X-BeenThere: dev-commits-src-main@freebsd.org
Sender: owner-dev-commits-src-main@FreeBSD.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 749c249dc3b656fea69149f8f7ad3e1a7f935986
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

URL: https://cgit.FreeBSD.org/src/commit/?id=749c249dc3b656fea69149f8f7ad3e1a7f935986

commit 749c249dc3b656fea69149f8f7ad3e1a7f935986
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2024-06-03 18:31:19 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2024-06-03 18:31:19 +0000

    subr_pctrie: use ilog2(x) instead of fls(x)-1
    
    In three instances where fls(x)-1 is used, the compiler does not know
    that x is nonzero and so adds needless zero checks.  Using ilog(x)
    instead saves, in each instance, about 4 instructions, including a
    conditional, and 16 or so bytes, on an amd64 build.
    
    Reviewed by:    alc
    Differential Revision:  https://reviews.freebsd.org/D45330
---
 sys/kern/subr_pctrie.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/kern/subr_pctrie.c b/sys/kern/subr_pctrie.c
index 85df0a9bf9e4..76f4ee17a8ca 100644
--- a/sys/kern/subr_pctrie.c
+++ b/sys/kern/subr_pctrie.c
@@ -350,7 +350,7 @@ pctrie_insert_node(void *parentp, struct pctrie_node *parent, uint64_t *val)
 	    "uint64 too wide");
 	_Static_assert(sizeof(uint64_t) * NBBY <=
 	    (1 << (sizeof(parent->pn_clev) * NBBY)), "pn_clev too narrow");
-	parent->pn_clev = rounddown(flsll(index ^ newind) - 1, PCTRIE_WIDTH);
+	parent->pn_clev = rounddown(ilog2(index ^ newind), PCTRIE_WIDTH);
 	parent->pn_owner = PCTRIE_COUNT;
 	parent->pn_owner = index & -(parent->pn_owner << parent->pn_clev);
 
@@ -546,14 +546,14 @@ pctrie_lookup_le(struct pctrie *ptree, uint64_t index)
 		KASSERT((pred->pn_popmap & ((1 << slot) - 1)) != 0,
 		    ("%s: no popmap siblings before slot %d in node %p",
 		    __func__, slot, pred));
-		slot = fls(pred->pn_popmap & ((1 << slot) - 1)) - 1;
+		slot = ilog2(pred->pn_popmap & ((1 << slot) - 1));
 		pred = pctrie_node_load(&pred->pn_child[slot], NULL,
 		    PCTRIE_LOCKED);
 	}
 	while (!pctrie_isleaf(pred)) {
 		KASSERT(pred->pn_popmap != 0,
 		    ("%s: no popmap children in node %p",  __func__, pred));
-		slot = fls(pred->pn_popmap) - 1;
+		slot = ilog2(pred->pn_popmap);
 		pred = pctrie_node_load(&pred->pn_child[slot], NULL,
 		    PCTRIE_LOCKED);
 	}