From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andi Kleen Subject: Re: [patch] measurements, numbers about CONFIG_OPTIMIZE_INLINING=y impact Date: Sat, 10 Jan 2009 01:37:09 +0100 Message-ID: <20090110003709.GT26290@one.firstfloor.org> References: <496648C7.5050700@zytor.com> <20090109130057.GA31845@elte.hu> <49675920.4050205@hp.com> <20090109153508.GA4671@elte.hu> <1231532276.2081.12.camel@entropy> <1231543701.2081.185.camel@entropy> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Nicholas Miell , Ingo Molnar , jim owens , "H. Peter Anvin" , Chris Mason , Peter Zijlstra , Steven Rostedt , paulmck@linux.vnet.ibm.com, Gregory Haskins , Matthew Wilcox , Andi Kleen , Andrew Morton , Linux Kernel Mailing List , linux-fsdevel , linux-btrfs , Thomas Gleixner , Nick Piggin , Peter Morreale , Sven Dietrich To: Linus Torvalds Return-path: In-Reply-To: List-ID: > What's the cost/benefit of that 4%? Does it actually improve performance? > Especially if you then want to keep DWARF unwind information in memory in > order to fix up some of the problems it causes? At that point, you lost dwarf unwind information has nothing to do with this, it doesn't tell you anything about inlining or not inlining. It just gives you finished frames after all of that has been done. Full line number information would help, but I don't think anyone proposed to keep that in memory. > Does it help I$ utilization (which can speed things up a lot more, and is > probably the main reason -Os actually tends to perform better)? Likely > not. Sure, shrinking code is good for I$, but on the other hand inlining > can actually be bad for I$ density because if you inline a function that > doesn't get called, you now fragmented your footprint a lot more. Not sure that is always true; the gcc basic block reordering based on its standard branch prediction heuristics (e.g. < 0 or == NULL unlikely or the unlikely macro) might well put it all out of line. -Andi