Messages in this thread | ![/](/images/icornerl.gif) | | From | "Wang, Xiao W" <> | Subject | RE: [PATCH] bitops: Change function return types from long to int | Date | Mon, 22 Apr 2024 05:24:39 +0000 |
| |
> -----Original Message----- > From: Thorsten Blum <thorsten.blum@toblux.com> > Sent: Sunday, April 21, 2024 6:39 AM > To: Arnd Bergmann <arnd@arndb.de> > Cc: Wang, Xiao W <xiao.w.wang@intel.com>; Palmer Dabbelt > <palmer@rivosinc.com>; Charlie Jenkins <charlie@rivosinc.com>; Namhyung > Kim <namhyung@kernel.org>; Huacai Chen <chenhuacai@kernel.org>; Youling > Tang <tangyouling@loongson.cn>; Tiezhu Yang <yangtiezhu@loongson.cn>; > Jinyang He <hejinyang@loongson.cn>; linux-arch@vger.kernel.org; linux- > kernel@vger.kernel.org; Thorsten Blum <thorsten.blum@toblux.com> > Subject: [PATCH] bitops: Change function return types from long to int > > 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.
Could we change the return types to "int", instead of "unsigned int"? https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html says that these __builtin_* functions return "int".
> > 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.
I guess your test is based on 64bit arch, right?
BRs, Xiao
| ![\](/images/icornerr.gif) |