Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

Cause for remark #11074: Inlining inhibited by limit max-size

Andy_D_Intel
Employee
2,309 Views

#11074: Inlining inhibited by limit max-size 
#11074: Inlining inhibited by limit max-total-size 
#11076: To get full report use -qopt-report=4 -qopt-report-phase ipo

 

I recently started getting these remarks when building a set of C++ files with the Intel compiler. I would like to know more about what it's trying to communicate, but haven't found much online. It's even omitted from the diag-dump list.

 

Does anyone have more information on it? I'd like to be able to 'fix' the root cause and remove it from my list of diag-disable warnings.

 

Thanks!

 

0 Kudos
1 Solution
KitturGanesh
Employee
2,309 Views

Hi Andy,
The compiler by default uses the default heuristics when inlining functions especially when considering the size of the functions (small or large etc). and by default the switch is -no-inline-min-size and -no-inline-max-size for small and large function limits.  So, if the options are set when compiling (such as -inline-min-size=n, -inline-max-size etc) the compiler will stick to those specified limits and will outputs those remarks accordingly. So, you can control the limits based on your application. Of course, the inliner has a preference to inline small routines and are very likely to be inlined by default if no limits are specified based on heuristics. You can search for those options in the user documentation and can more details as well. BTW, you can turn off those remarks by using the switch -diag-disable=list. The optimization report will show you the inlining limits used accordingly.  Note that if you specify a large limit the compiler may run of memory and may output out of memory remark as well.

_Kittur

 

View solution in original post

0 Kudos
1 Reply
KitturGanesh
Employee
2,310 Views

Hi Andy,
The compiler by default uses the default heuristics when inlining functions especially when considering the size of the functions (small or large etc). and by default the switch is -no-inline-min-size and -no-inline-max-size for small and large function limits.  So, if the options are set when compiling (such as -inline-min-size=n, -inline-max-size etc) the compiler will stick to those specified limits and will outputs those remarks accordingly. So, you can control the limits based on your application. Of course, the inliner has a preference to inline small routines and are very likely to be inlined by default if no limits are specified based on heuristics. You can search for those options in the user documentation and can more details as well. BTW, you can turn off those remarks by using the switch -diag-disable=list. The optimization report will show you the inlining limits used accordingly.  Note that if you specify a large limit the compiler may run of memory and may output out of memory remark as well.

_Kittur

 

0 Kudos
Reply