Inlining report

Inlining report

Bild des Benutzers Sjoerd Meijer


I am using icpc version 13.1.0 and I am puzzled why my function is not inlined. The function is a overloaded  + operator, with only a few additions inside. I tried to put the definition inside the class (implicit inlining?), but also the keywords __inline and __forceinline when the definition was not put in the class. In addition, I also tried the compiler options -inline-forceinline and -no-inline-factor, but all without luck. To understand why this function is not inlined, I am using option -opt-report. Find below a report snippet of what I think is the relevant part:

    <test.cpp;81:94;IPO INLINING;main;0>
    INLINING REPORT: (main) [1/2=50.0%]

    -> printf(EXTERN)
    -> _ZN6md_vecaSERKS_(EXTERN)
    -> (NOFORCE): _ZN6md_vecplERKS_(1) (isz = 13) (sz = 22 (7+15))
    <test.cpp;57:76;IPO INLINING;_ZN6md_vecplERKS_;0>

    INLINING REPORT: (_ZN6md_vecplERKS_) [2/2=100.0%]

The problem is that I don't know how to read this. So here are my questions:

- can the verbosity be increased, or can it be printed in a more human readable form?

- is there any documentation on this?

- I also tried option -diag-dump and do see some 

  "forceinline could not be honored due to safety/correctness checks"


  "__inline and __forceinline are not allowed here"

  but I am not sure to what it applies, so it doesn't give me more clues either.

Any idea is more than welcome.

Thanks in advance,


6 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.
Bild des Benutzers Sjoerd Meijer

By the way, GCC has no problem inlining the function.

Hi Sjoerd,

                  Could you please forward me the source file for which there is no inlining happening? Also provide me with the icpc -V output and the compiler options that you have used.


Sukruth H V


Could you also upload test.s file generated by the compiler?

Bild des Benutzers Sjoerd Meijer

I am sorry for the noise, but I can't reproduce things at the moment. That is, I see things being inlined now. I have to figure out what has changed. Thanks already for the quick responses.

>>... I can't reproduce things at the moment. That is, I see things being inlined now...

That's OK and thank you for the update!

Melden Sie sich an, um einen Kommentar zu hinterlassen.