Author: Eugene Nalimov
Date: 16:38:07 03/30/04
Go up one level in this thread
On March 30, 2004 at 18:14:28, Russell Reagan wrote: >On March 30, 2004 at 16:20:52, Dieter Buerssner wrote: > >>On March 30, 2004 at 02:34:21, Slater Wold wrote: >> >>>64-bit Arasan compiled with: -O2 -Ot -Og -Oi -Gr -GX -Oy -Ob2 -GL >> >>For my programs (and I don't have any 64-bit environments), omitting -Ob2 was >>always faster. The same when using GCC - allowing it to inline everything >>suitable produces slower code. In really time critical applications, where I >>thought that some functions should be inlined, I noted so to the compiler >>(__force_inline/__inline__). Letting the compiler chose itself seemed always >>worse. >> >>Regards, >>Dieter > >I think that with the latest VC++ you do not have the option to turn of >inlining, and the default is to "inline any suitable". Last night I was trying >to profile a chess program, and I wanted to turn off all inlining so that all >functions would show up in the profile. I had to use gcc and gprof, because the >default in VC++ .NET 2003 is to inline any suitable function, and I couldn't >find any option to turn of inlining. gcc has -fno-inline. Well, actually I >changed the setting in VC++ to only inline if the function was declared >__inline, but even then, I was not sure if all functions were not inlined. > >From this webpage, it says: > >http://msdn.microsoft.com/chats/vstudio/vstudio_032703.asp > >"Q: Is there a good rule of thumb when to use inline functions or not? > >A: Starting with VC7.0, auto-inlining (-Ob2) is on by default. This means that >all functions are inline candidates. We do slightly favor functions marked as >inline in some cases however. In general, marking function as inline will not >change much. A function can only be inlined if the call site and the definition >are visible to the compiler, so the definition needs to be in a header file or >you want to use link-time-codegen. In general, small functions that are called >frequently are the best candidates. Function with constants passed as arguments >are also good." I believe that /Ob0 will turn off inlining for all but __forceinline functions. Thanks, Eugene
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.