Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762461AbbEES2v (ORCPT ); Tue, 5 May 2015 14:28:51 -0400 Received: from gate.crashing.org ([63.228.1.57]:41565 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756610AbbEES2r (ORCPT ); Tue, 5 May 2015 14:28:47 -0400 Date: Tue, 5 May 2015 11:10:27 -0500 From: Segher Boessenkool To: Linus Torvalds Cc: Richard Henderson , Peter Zijlstra , Vladimir Makarov , Jakub Jelinek , Ingo Molnar , "H. Peter Anvin" , Thomas Gleixner , Linux Kernel Mailing List , Borislav Petkov , "gcc@gcc.gnu.org" Subject: Re: [RFC] Design for flag bit outputs from asms Message-ID: <20150505161027.GA8395@gate.crashing.org> References: <20150501151630.GH5029@twins.programming.kicks-ass.net> <20150501163329.GU1751@tucnak.redhat.com> <5543CDC0.6010206@redhat.com> <20150502123958.GK5029@twins.programming.kicks-ass.net> <5547C992.9000703@redhat.com> <20150505135005.GA4850@gate.crashing.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1985 Lines: 39 On Tue, May 05, 2015 at 08:37:01AM -0700, Linus Torvalds wrote: > On Tue, May 5, 2015 at 6:50 AM, Segher Boessenkool > wrote: > > > > Since it is pre-processed, there is no real reason to overlap this with > > the constraints namespace; we could have e.g. "=@[xy]" (and "@[xy]" for > > inputs) mean the target needs to do some "xy" transform here. > > In fact, standing out visually would be just a good thing, since it's > pretty special even from a usage standpoint. > > And are you actually planning to have flags as inputs? Because *that* > sounds like a bad idea. It's pretty hard to turn a boolean into a flag > value, while pretty much any archiecture has an operation like "setcc" > to go the other way. And I don't think your machine descriptions have > anything to "generate flags". You'd have to add fragile and complex > machinery for something it is unlikely anybody ever wants. It isn't hard (or expensive) to turn integers into flags, on many targets. It is nice to allow this at least in the generic part of the code -- what targets do in their target hook is up to them. It isn't fragile or complex. Not useful on some archs, yes I certainly believe that. But the lovely thing about Richard's proposal is that it actually is a very simple addition to what the compiler already does, there are no hard new optimisations needed, it's just a bit of munging to allow the user to write an asm with condition code in/outs. Allowing inputs is just another bool argument to the target hook. I'd rather have this more orthogonal than more specialised; it can be used for much more than just condition codes. It's not like the "more general" syntax would be a burden, as far as I see. Segher -- 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/