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

ICC 13.0 backend signals

Marián__VooDooMan__M
New Contributor II
427 Views

Greetings,

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.

0 Kudos
6 Replies
Vladimir_P_1234567890
427 Views
Hello,
I'm not an expert in compiler but I believe if you use static libs or putting objects together you need to set the same IPO settings for all objects linking to the same module.
--Vladimir
0 Kudos
Marián__VooDooMan__M
New Contributor II
427 Views
Hello,
I'm not an expert in compiler but I believe if you use static libs or putting objects together you need to set the same IPO settings for all objects linking to the same module.
--Vladimir

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.

0 Kudos
Marián__VooDooMan__M
New Contributor II
427 Views
Quoting VooDooMan
Hello,
I'm not an expert in compiler but I believe if you use static libs or putting objects together you need to set the same IPO settings for all objects linking to the same module.
--Vladimir

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.

0 Kudos
Alexander_W_Intel
427 Views
Hi, I tested the issue using the official release version of the 13.0 compiler and the error is fixed there. Thanks, Alex
0 Kudos
Alexander_W_Intel
427 Views
Hi, the error should also be fixed in the Update 12 of Intel® Composer XE 2011. Alex
0 Kudos
Marián__VooDooMan__M
New Contributor II
427 Views

aweggerl wrote:

Hi,

I tested the issue using the official release version of the 13.0 compiler and the error is fixed there.

Thanks,
Alex

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.

0 Kudos
Reply