Decimal FP constants with many 9s in the exponent take a very long time to compile. The more 9s, the longer it takes.
I tested on Linux and Windows. Unfortunately I failed to reproduce the compile time performance issue that you reported.
I was using icc 11.1.072 (on Linux) and icl 11.1.065 (on Windows).
Could you please provide a small test case and let me know your OS and the version of Intel compiler?
Thank you.--Feilong H.Intel Developer Support
Tools Knowledge Base: http://software.intel.com/en-us/articles/tools
* Test of large exponent.
* Hardware: Intel Pentium 4 in IA-32 mode
* O.S.: Linux: Fedora Core 10
* Compiler: Intel C/C++ Version 11.1
#if 0 /* fast: 1 second */
_Decimal32 f32 = 0.0e+99999df;
_Decimal64 f64 = 0.0e+99999dd;
_Decimal128 f128 = 0.0e+99999dl;
#else /* slow: 20 seconds */
_Decimal32 f32 = 0.0e+9999999999df;
_Decimal64 f64 = 0.0e+9999999999dd;
_Decimal128 f128 = 0.0e+9999999999dl;
return f32 == f64 + f128;
Thank you for your test case. I'm able to reproduce this issue now. I escalated it to our problem-tracking database and will let you know when I have an update regarding it.
Engineering has implemented a fix for this issue. I'll let you know when a compiler update that contains the fix is available for download.
This compile time performance issue has been addressed in Composer XE 2011 update 1. You may download it at https://registrationcenter.intel.com.