How to diagnose inlining failure?

Henrik Mannerström henrik.mannerstrom@gmail.com
Thu Mar 29 07:18:00 GMT 2012


Ian Lance Taylor wrote:
>> I get the following warning from the compiler:
>>
>> header.h:10: warning: inlining failed in call to ‘double hill(double,
>> double, double)’: call is unlikely and code size would grow
>>
>> I know that the "--param" option has many variables controlling inlining
>> but I don't know which ones to change. Can I get some kind of diagnostic
>> of the specific decision the compiler makes when not inlining?
> To my eyes, that is the diagnostic right there: "the call is unlikely
> and code size would grow."  What kind of diagnostic are you looking for?
I tried the following:

-finline-limit=100000 --param large-function-growth=100000 --param
inline-unit-growth=100000 ,

but the messages did not go away. I have organized my code in small
functions but I wish the compiler would flatten most of it to avoid
function call overhead (when it is reasonable). The function in question
is called in three places from a function that is called only from one
place, inside a function that is called in two main loops. I hoped the
compiler might be able to tell me something like "inlining function X
would result in code growth Y%, which is prohibited by parameter Z".

- Henrik



More information about the Gcc-help mailing list