ICL preprocesor built-in define for ICL version?

ICL preprocesor built-in define for ICL version?

imagem de Marián "VooDooMan" Meravý

Greetings,

due to bug while compile time (assertion failure) in ICL i need to do this in two pieces of code:

#if defined(__INTEL_COMPILER) && !defined(HAVE_INTEL_COMPILER_BUG_02)

#   pragma ivdep

#endif
while defining "HAVE_INTEL_COMPILER_BUG_02" in MSVC 2010 project file.

I am using ICL 12.1 (parallel studio + MSVC 2010). Is there some built-in ICL preprocessr define like "_MSC_VER" for visual studio, so I will not have to define preprocessor symbol in project file, but rather in sources (preprocessor + ICL version comparison)?

Am I blind, or this is not mentioned in the ICL documentation?

Actually I want to test for 12.1 ICL version by preprocessor.

-- With best regards, VooDooMan - If you find my post helpful, please rate it and/or select it as a best answer where applies. Thank you.
4 posts / 0 new
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.
imagem de Brandon Hewitt (Intel)
Best Reply

The doc for this is at http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/win/index.htm#bldaps_cls/cppug_ccw/bldaps_macros_win.htm#bldaps_macros_win although it's not visible from the table of contents, which is odd. I'll submit a docs issue for that.

Anyway, __INTEL_COMPILER contains a value that's version dependent. For the latest 12.1 compiler, it's 1210. Be careful, as there is a known issue for the first product version of 12.1 (12.1.0 in C++ Composer XE 2011 update 6) that emits "9999" for this. Updates 7 and later do the correct thing.

Brandon Hewitt Technical Consulting Engineer Tools Knowledge Base: http://software.intel.com/en-us/articles/tools Software Product support info: http://www.intel.com/software/support
imagem de Sergey Kostrov

Hi Brandon,

Thanks for the link! I have a question:

What are 'EDG' and '__EDG_VERSION__' macros for?

Best regards,
Sergey

imagem de Marián "VooDooMan" Meravý

Quote:

vdm_adfp wrote:

Greetings,

due to bug while compile time (assertion failure) in ICL i need to do this in two pieces of code:

#if defined(__INTEL_COMPILER) && !defined(HAVE_INTEL_COMPILER_BUG_02) # pragma ivdep #endif

while defining "HAVE_INTEL_COMPILER_BUG_02" in MSVC 2010 project file.

I am using ICL 12.1 (parallel studio + MSVC 2010). Is there some built-in ICL preprocessr define like "_MSC_VER" for visual studio, so I will not have to define preprocessor symbol in project file, but rather in sources (preprocessor + ICL version comparison)?

Am I blind, or this is not mentioned in the ICL documentation?

Actually I want to test for 12.1 ICL version by preprocessor.

Actually, over time, two things happened to me:

1. I have found out that __INTEL_COMPILER is compiler-defined number of ICC version, so it can be easily detected by preprocessor.

2. I don't need "HAVE_INTEL_COMPILER_BUG_02" to define globally, since that bug was resolved by official ICC 13.0 (not beta). So I have undefined this project-wide preprocessor symbol, and workaround is not needed any-more.

-- With best regards, VooDooMan - If you find my post helpful, please rate it and/or select it as a best answer where applies. Thank you.

Faça login para deixar um comentário.