WeI have been using Intel C++ Compiler version 11 for a long time (on Mac OS), and have been very happy with the performance running DSP code. We are now upgrading our build system, and version 11 is no longer supported on our new Mac.
Unfortunately, upgrading to the latest compiler version (version 13), has a quite bad impact on performance. After some digging it seems like part of this is due to changes in inlining. We have a lot of loops with a bunch of function calls in them, and they no longer inline, even if I use the "static inline" keyword. It seems like I can get around this using the "-ip" flag to the compiler, but still performance is not as good as before.
I used to have the following flags:
-Wno-multichar -Wno-trigraphs -Wall -x c++ -fmessage-length=0 -pipe -fpascal-strings -fasm-blocks -O3 -funroll-loops -funroll-all-loops -fp-model fast -fPIC
I can't use the "-ipo" flag, as I link with other code compiled with other compilers.
Any other things that have changed which can affect performance?