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

Slowdown vs VC6++

AndrewC
New Contributor III
405 Views
After recompiling all my C++ code in "Release" mode using the 8.0 compiler for windows, my set of QA test cases now takes more than twice as long vs. Visual C++ 6 compiled code. A bit depressing! I realize the Intel compiler has lots of great optimizations, but surely a the default /O2 should better the creaky old MS compiler!

Where should I start looking for problems? The code is computational C++, with lots of floating point work, but mixed with lots of C++ method calls and template instantiation.

The compiler options passed to the Intel compiler would the default "Maximise Speed" ones from VC++.
Pentium IV , 2Ghz, Windows 2000.
0 Kudos
3 Replies
JenniferJ
Moderator
405 Views

This is interesting.

Please try "-QxN" and see if the performance is better. Do you have 7.1 version of IntelC? How is the performance with it?

Jennifer

0 Kudos
AndrewC
New Contributor III
405 Views
I have done some unit testing to isolate the issue, and it does appear to be isolated to one "library" of mine. I am fiddling with compiler options to see what the issue is.

A telling point is that the intel compiled "Debug" version of this one test runs a lot faster than the intel compiled "Release" verion. Optimizer gone bad, I suspect.
0 Kudos
andy2222
Beginner
405 Views

Ihave exact the same problem using 8.0 or 7.1, im working on the ffdshow code (well know dshow video postprocessing filter) and the simple O2 compile runs 30% slower compared to the VC 6.0 version...

I tryed every switch i know, i also run through all the intel tutorial's related to optimization switches...

Maybe the slowdown comes from the libirc.lib? Since i need add those lib for intel_fastmemcpy stuff, mabye some compatibility stuff?

Any hint to get it working? I cant belive old VC6 with O2 is faster than everything ICL 8 can produce....and we talk about 30-50% slower
andy hints/switches i can try to speed it up?
PS: the code has many inline ASM stuff? In gcc i can use __volatile to ensure the code is not moved out of the segment is there something i can do with icl too?

Message Edited by Andy2222 on 02-16-2004 12:19 AM

0 Kudos
Reply