From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Torvalds Subject: Re: gcc inlining heuristics was Re: [PATCH -v7][RFC]: mutex: implement adaptive spinning Date: Mon, 12 Jan 2009 15:19:12 -0800 (PST) Message-ID: References: <20090112001255.GR26290@one.firstfloor.org> <20090112005228.GS26290@one.firstfloor.org> <496B86B5.3090707@t-online.de> <20090112193201.GA23848@one.firstfloor.org> <496B9890.1090002@zytor.com> <20090112230117.GC26430@shareable.org> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: "H. Peter Anvin" , Andi Kleen , Bernd Schmidt , David Woodhouse , Andrew Morton , Ingo Molnar , Harvey Harrison , Chris Mason , Peter Zijlstra , Steven Rostedt , paulmck@linux.vnet.ibm.com, Gregory Haskins , Matthew Wilcox , Linux Kernel Mailing List , linux-fsdevel , linux-btrfs , Thomas Gleixner , Nick Piggin , Peter Morreale , Sven Dietrich , jh@suse.cz To: Jamie Lokier Return-path: In-Reply-To: <20090112230117.GC26430@shareable.org> List-ID: On Mon, 12 Jan 2009, Jamie Lokier wrote: > > Sometimes code motion makes code faster and/or smaller but use more > stack space. If you want to keep the stack use down, it blocks some > other optimisations. Uhh. Yes. Compiling is an exercise in trade-offs. That doesn't mean that you should try to find the STUPID trade-offs, though. The thing is, there is no excuse for gcc's stupid alias analysis. Other compilers actually take advantage of things like the C standards type alias ambiguity by (a) realizing that it's insane as a general thing and (b) limiting it to the real special cases, like assuming that pointers to floats and pointers to integers do not alias. That, btw, is where the whole concept comes from. It should be passed off as an "unsafe FP optimization", where it actually makes sense, exactly like a lot of other unsafe FP optimizations. Linus