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

Bug in Intel C++ compiler when using option /Qipo

Ton_Kostelijk
Beginner
628 Views

Hi,

I think I discovered a bug in the Intel C++ v11.0.066 compiler regarding the option /Qipo.

We where testing a simple path finding algorithm (to study the effects of vectorization and OMP parallelization on performance) and we did our first tests with the 10.1.025 compiler without any problems.

During the testing the compiler 11.0.061 came available and because we where still in our testing stage (trying various strategies to see the effect) we ignored this release.

When we where done with the testing compiler 11.0.066 became available and to see if this compiler had any significant impact on the strategies we had tried we installed this compiler and reran our tests.

Thats when we discovered that the project using the /Qipo setting failed to run correctly.

One of the three subroutines that was used in the program for some reason was optimized out of the code and this made the rest of the program fail. The only way to get this routine back into the executable (apart from changing /Qipo to /Qip) was to add a printf statement inside the function.

We did some testing back and forth with the 10.1.029 compiler and there the problem doesn't occur.

The project consists of only one source file, so using /Qipo is probably not sensible, but I didn't expect this problem to crop up.

I've added the project as a zip file to this message if someone wants to take a look at this problem.

0 Kudos
7 Replies
matthieu_darbois
New Contributor III
628 Views

Hi,

I also ran into this issue yesterday when building a test project with intel compiler 11.0.061.

One of my functions (which was inlined by the compiler previously) just wasn't called anymore.

This test project contains several functions all doing the same thing (image processing) with different optimization (MMX, SSE2, SSSE3). Each function was inlined successfuly except one. Swapping 2 input operands in the inline assembly which is used in that function tricked the compiler to inline the function properly again...

Definitely a weird behaviour...

Unfortunately I haven't kept trace of the original code which generated that issue.

0 Kudos
levicki
Valued Contributor I
628 Views


You are both right. There is a bug with broken interprocedural optimizer, and I havesubmitted an issue (#524001)to the Intel Premier Support as soon as I had a chance to test the 11.0.061 build.

That was on 12-Nov-2008 -- 14 days later and the issue is still "open" instead of "reproduced/escalated" or "targeted to be fixed" even though I provided them with a reproducible test case. What is worse,I have been asked if the priority of the issue can be reduced from "Showstopper" to "High" which I have naturally refused to accept because this is the showstopper.

The issue is quite obviously a regression from 10.1 compiler branch and as such it should have been caught in a (rather long if I may add) beta testing if not even earlier, instead ofletting it slipinto a release version of the product.

In the meantime there is 11.0.066 build which deals with three issues of much lower severity and with several cosmetic feature requests, one of them being "add the compiler version in help->about" while the real showstopper such as this issue remains unfixed.

I have suggested Intel to pull down the compiler download so as not to embarras themselves any further as soon as I have noticed this but not only they didn't listen, they even released another build without a critical fix not to mention that it is impossible to download only the updated compiler instead of whole ICC+IPP+TBB+MKL package.

At first I didn't want to writethis in public, butafter a series of events that happened during the last few weeks regarding the compiler, IPP, Premier Support,and the forum software, my trust in Intelhas severely diminished and it will take a lot of work on their side to re-establish it if they want me tocontinue to keep participatingin this community in the future.

0 Kudos
levicki
Valued Contributor I
628 Views
I have just been informed that "The problem is fixed now and the fix will be available in the next compiler update." -- good riddance!
0 Kudos
Ton_Kostelijk
Beginner
628 Views
Quoting - Igor Levicki
I have just been informed that "The problem is fixed now and the fix will be available in the next compiler update." -- good riddance!

That's good to hear. Hopefully this version will be released soon.

I did notice that this compiler seems to be a bit "green". I mean, I've noticed that certain code I've been working on has lower performance when build with the series 11 compiler than it has with the series 10 compiler.

I get the distinct feeling that the series 11 compiler was released too early and should have spend more time in beta testing and/or quality control.

0 Kudos
levicki
Valued Contributor I
628 Views

1. I did notice that this compiler seems to be a bit "green". I mean, I've noticed that certain code I've been working on has lower performance when build with the series 11 compiler than it has with the series 10 compiler.

2. I get the distinct feeling that the series 11 compiler was released too early and should have spend more time in beta testing and/or quality control.

1. Same here. Around 3% performance loss compared to 9 and 10.

2. It was in the beta for quite a long time so I would say that it has more to do with the quality of testing than with the time spent doing it.

0 Kudos
JenniferJ
Moderator
628 Views
There's a fix related to /Qipo in the 11.0.072 pkg.

You can download it from our Registration Center or get an eval.

Jennifer
0 Kudos
levicki
Valued Contributor I
628 Views
There's a fix related to /Qipo in the 11.0.072 pkg.

You can download it from our Registration Center or get an eval.

Jennifer

Is it just me or it always takes three months to fix a bug?

0 Kudos
Reply