On Sat, Oct 10, 2009 at 12:55 PM, Toon Moene <t...@moene.org> wrote: > Gcc's man page says: > > -finline-functions-called-once > Consider all "static" functions called once for inlining into > their caller even if they are not marked "inline". If a call > to a given function is integrated, then the function is not > output as assembler code in its own right. > > Enabled at levels -O1, -O2, -O3 and -Os. > > Now, when using -flto -fwhole-program, *all* functions (that the user > provided) will be "static inline", no ? - so *all* functions only called > once in that program will be inlined ?
Well, I think that we should try to not do this across the whole program. Simply for the reason that a gigantic main function will hit several non-linear complexity algorithms in GCC. > I am asking because our most important programs often consist of a chain of > "routines-that-do-all-the-work" which are all only called once. However, in > general they are (certainly when viewed from the perspective of a C > programmer) *huge*. > > E.g., our forecast program: > > HLPROG (small "main" program) > | > | calls > V > GEMINI (read input files, write output files, and:) > | > V > SL2TIM (time stepping, and:) > | > V > PHCALL (subgrid scale computations) > | > V > PHTASK (split them into tasks over model domain) > | > V > PHYS (actually hand out the work to:) > | > ---------------------- > | | | | | > LSP CVP RADIA TURB SOIL > > (large scale precipitation, convective precipitation, > radiation, turbulence, soil processes) > > The last five are each around 2,000 lines of Fortran, the P routines are > each several hundreds of lines, as is SL2TIM. GEMINI is more than 2,000 > lines. > > My question is: How can I be sure that all of them are integrated (note that > the man page says they are "considered") ? Does -Winline help here ? > Perhaps I should scan the assembler output (HAH!). -Winline doesn't help here. Scanning the assember output does (obviously!). Note that I wouldn't expect such aggressive inlining to have any positive performance impact - were it not for the fact that we still lack a properly operating IPA points-to analysis pass (yes, it's on my todo list - but not for 4.5). Richard.