Messages in this thread | | | Date | Mon, 22 Apr 2024 09:44:40 +0200 | Subject | Re: [PATCH] bitops: Change function return types from long to int | From | Amadeusz Sławiński <> |
| |
On 4/21/2024 12:38 AM, Thorsten Blum wrote: > Change the return types of bitops functions (ffs, fls, and fns) from > long to int. The expected return values are in the range [0, 64], for > which int is sufficient. > > Additionally, int aligns well with the return types of the corresponding > __builtin_* functions, potentially reducing overall type conversions. > > Many of the existing bitops functions already return an int and don't > need to be changed. The bitops functions in arch/ should be considered > separately. > > Adjust some return variables to match the function return types. > > With GCC 13 and defconfig, these changes reduced the size of a test > kernel image by 5,432 bytes on arm64 and by 248 bytes on riscv; there > were no changes in size on x86_64, powerpc, or m68k. > > Signed-off-by: Thorsten Blum <thorsten.blum@toblux.com> > --- > include/asm-generic/bitops/__ffs.h | 4 ++-- > include/asm-generic/bitops/__fls.h | 4 ++-- > include/asm-generic/bitops/builtin-__ffs.h | 2 +- > include/asm-generic/bitops/builtin-__fls.h | 2 +- > include/linux/bitops.h | 6 +++--- > tools/include/asm-generic/bitops/__ffs.h | 4 ++-- > tools/include/asm-generic/bitops/__fls.h | 4 ++-- > tools/include/linux/bitops.h | 2 +- > 8 files changed, 14 insertions(+), 14 deletions(-)
I don't mind the idea, but in the past I've send some patches trying to align some arch specific implementations with asm-generic ones. Now you are changing only asm-generic implementation and leaving arch specific ones untouched (that's probably why you see no size change on some of them).
For example on x86, there is: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/include/asm/bitops.h?id=ed30a4a51bb196781c8058073ea720133a65596f#n293 and you probably need to check all architectures for those implementations.
Thanks, Amadeusz
| |