From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ozlabs.org (ozlabs.org [IPv6:2401:3900:2:1::2]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3wh9pk1RhYzDqKy for ; Mon, 5 Jun 2017 20:21:50 +1000 (AEST) In-Reply-To: To: Christophe Leroy , Benjamin Herrenschmidt , Paul Mackerras , Scott Wood From: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [1/4] powerpc: Discard ffs()/__ffs() function and use builtin functions instead Message-Id: <3wh9pj6YD0z9sD5@ozlabs.org> Date: Mon, 5 Jun 2017 20:21:49 +1000 (AEST) List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Fri, 2017-04-21 at 11:18:46 UTC, Christophe Leroy wrote: > With the ffs() function as defined in arch/powerpc/include/asm/bitops.h > GCC will not optimise the code in case of constant parameter, as shown > by the small exemple below. ... > > In addition, when reading the generated vmlinux, we can observe > that with the builtin functions, GCC sometimes efficiently spreads > the instructions within the generated functions while the inline > assembly force them to remain grouped together. > > __builtin_ffs() is already used in arch/powerpc/include/asm/page_32.h > > Those builtins have been in GCC since at least 3.4.6 (see > https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Other-Builtins.html ) > > Signed-off-by: Christophe Leroy Series applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/f83647d642270f6b9d75736817fb5a cheers