Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751531AbbEARRg (ORCPT ); Fri, 1 May 2015 13:17:36 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:33794 "EHLO mail-wi0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751056AbbEARRe (ORCPT ); Fri, 1 May 2015 13:17:34 -0400 Date: Fri, 1 May 2015 19:17:28 +0200 From: Ingo Molnar To: Peter Zijlstra Cc: Jakub Jelinek , Linus Torvalds , Richard Henderson , Vladimir Makarov , "H. Peter Anvin" , Thomas Gleixner , Linux Kernel Mailing List , Borislav Petkov Subject: Re: [PATCH] x86: Optimize variable_test_bit() Message-ID: <20150501171728.GD1657@gmail.com> References: <20150501151630.GH5029@twins.programming.kicks-ass.net> <20150501163329.GU1751@tucnak.redhat.com> <20150501164639.GA19158@dyad.arnhem.chello.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150501164639.GA19158@dyad.arnhem.chello.nl> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1880 Lines: 43 * Peter Zijlstra wrote: > On Fri, May 01, 2015 at 06:33:29PM +0200, Jakub Jelinek wrote: > > On Fri, May 01, 2015 at 09:03:32AM -0700, Linus Torvalds wrote: > > > > PPS. Jakub, I see gcc5.1 still hasn't got output operands for asm goto; > > > > is this something we can get 'fixed' ? > > > > CCing Richard as author of asm goto and Vlad as register allocator > > maintainer. There are a few enhancement requests to support this, > > like http://gcc.gnu.org/PR59615 and http://gcc.gnu.org/PR52381 , > > but indeed the reason why no outputs are allowed is the register > > allocation issue. Don't know if LRA would be better suited to > > handle that case, but it would indeed be pretty hard. > > So it would b awesome if we could use these freshly modeled flags as > output for regular asm stmts; that would obviate much of the asm > goto hackery we now do/have and allow gcc to pick the right branch > for likely/unlikely. If I may hijack the discussion a bit: it would also be awesome if there was a GCC flag that would allow us to use __builtin_expect() hints even when automatic branch heuristics are disabled: I.e. very similar to -fno-guess-branch-probability, just that explicit __builtin_expect() hints would not be ignored (like -fno-guess-branch-probability does it today). We could use this to compress the kernel instruction cache footprint by about 5% on x86-64, while still having all the hand-made optimizations that __builtin_expect() allows us. It would be a perfect solution if -fno-guess-branch-probability just stopped ignoring __builtin_expect(). Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/