I am playing with the latest ICC 13.0 to day, package 0.041 in MSVC 2010.
I am getting "backend signals" at link phase for x64 build when I mix /Qipo .exe with /Qip .lib's and vice-versa. Another issue I had, was some PDB compiler error.
from build log:
[bash]--- snip ---
" : error : backend signals xilink : error #10014: problem during multi-file optimization compilation (code 4) xilink : error #10014: problem during multi-file optimization compilation (code 4)[/bash]I can provide .obj's and .lib's as a private post (I ask for confidency) if you will not be able to reproduce the bug.
It was working well (mixing various IPO settings) with pre-13.0 ICC's. The static lib compiled with /Qipo just generated remarks/warnings about (not-)vectorised loops at link phase of .exe/.dll (/Qip). You just had to set correct linker settings, like link-time code generation, and so on.
Unfortunately, linking .exe with /Qipo is not so easy, since the compiler uses like 12 GiBs of RAM, though I have physically only 8, so due to swapping it lasts for more than one day to link. Hence I use /Qip, but I have few static libs, that are performance critical, and they are small, so I use /Qipo for them.
Of course, there is always option to make those static libs to be the dll's. But there is a cost of non-IPO optimization at call (and maybe auto-inlining the call), and possibly cache flush because of one JMP in dispatch table and/or CALL instruction.
aweggerl wrote:Hi Alex, Yes, I must confirm that official ICC 13.0 (not beta) have fixed my issue. Thank you very much, heavenise (==have-a-nice/have-an-ice) code, as cool as possible.
I tested the issue using the official release version of the 13.0 compiler and the error is fixed there.