Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
7678 Discussions

#pragma omp without omp option turned on change compiler behaviour

epitalon
Beginner
162 Views
Hello all,

when I add a #pragma omp before a for loop in one function into a file for which the openMP option is turned off, the Intel compiler stops auto-vectorizing an unrelated for loop in an unrelated function.!??!

Actually, there is a random bug, because when I compile the file a second type, it sometimes compiles right.

I use the Compiler Integration Package v11.0.759.2005 in Visual Studio 2005.

Options used are :
/c /O2 /Ob1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "_VC80_UPGRADE=0x0710" /GF /EHsc /MT /GS /Gy /fp:fast /Fo".\Release/" /W3 /nologo /Qwd1125

I would like to have a more reliable compiler version. Could anyone here give me some advice on how to get that ?

Thanks,
Jean-Marie Epitalon
0 Kudos
2 Replies
TimP
Black Belt
162 Views
Within the term of your license or renewal, all updates are available to you at https://registrationcenter.intel.com.
If the function in question is affected by your request for maximum aggressive inter-procedural optimization, an omp directive on its caller may have an effect. This would be expected, where loop interchanges are required to enable vectorization, as the omp parallel forces the designated loop to remain the outer loop. In such a case, nesting your loops correctly so as to place the vectorizable loop inside is likely to be necessary in order to gain combined vector and parallel performance.

epitalon
Beginner
162 Views
This seems to be an error in the message output rather than in the compilation itself.
However, I downloaded the latest version of the compiler to make sure everything is correct.

Reply