Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Marián__VooDooMan__M
New Contributor II
72 Views

ICC 13.0 backend signals

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
72 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
Marián__VooDooMan__M
New Contributor II
72 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.

Marián__VooDooMan__M
New Contributor II
72 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.

72 Views

Hi, I tested the issue using the official release version of the 13.0 compiler and the error is fixed there. Thanks, Alex
72 Views

Hi, the error should also be fixed in the Update 12 of Intel® Composer XE 2011. Alex
Marián__VooDooMan__M
New Contributor II
72 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.

Reply