Re: [PATCH v3 00/16] Introduce and use generic parity16/32/64 helper
Jiri Slaby <[email protected]>
| Newsgroups | dev.linux.lists.brcm80211,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-mtd,org.kernel.vger.bpf,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-serial,org.kernel.vger.linux-wireless,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On 06. 03. 25, 17:25, Kuan-Wei Chiu wrote: > Several parts of the kernel contain redundant implementations of parity > calculations for 16/32/64-bit values. Introduces generic > parity16/32/64() helpers in bitops.h, providing a standardized > and optimized implementation. > > Subsequent patches refactor various kernel components to replace > open-coded parity calculations with the new helpers, reducing code > duplication and improving maintainability. > > Co-developed-by: Yu-Chun Lin <[email protected]> > Signed-off-by: Yu-Chun Lin <[email protected]> > Signed-off-by: Kuan-Wei Chiu <[email protected]> > --- > In v3, I use parityXX() instead of the parity() macro since the > parity() macro may generate suboptimal code and requires special hacks > to make GCC happy. If anyone still prefers a single parity() macro, > please let me know. What is suboptimal and where exactly it matters? Have you actually measured it? > Additionally, I changed parityXX() << y users to !!parityXX() << y > because, unlike C++, C does not guarantee that true casts to int as 1. How comes? ANSI C99 exactly states: === true which expands to the integer constant 1, === thanks, -- js suse labs