XE 2013 update 3: 2 bugs

XE 2013 update 3: 2 bugs

Greetings,
MSVC 2012, x64 build
issue 1:
The /MP switch has not been fixed. In the ProcessExplorer (sysinternals, now Microsoft) I see for process "mcpcom.exe" CPU utilization at 23% (I have core2 quad CPU, i.e. only one core is used out of 4) and it displays for open handles only one *.obj file at a time.

issue 2:
When in build process I press Ctrl+Break, it will generate *.obj file of zero size, later on F7 press, it will compile the rest and on link it complains "x64\DebugOptimized\XXX.obj : fatal error LNK1136: invalid or corrupt file". I recommend proper file wiping, or as a workaround, I suggest checking for zero-sized *.obj files. I have reported this issue with "update 2" on this forum, but I can't remember the exact URL. If you want to reproduce the issue, just hit Ctrl+Break.

issue 3. [optional]

In the ProcessExplorer, I have seen on link-time code generation ("/Qipo") that code generating-linker is opening and in turn closing and opening in turn the same *.obj files, often many times in sequence. I suggest for optimal performance a "file descriptor caching", like it has Apache web server implemented, just to keep files open for a few seconds (with use of hash tables), and after that closing it.

-- 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.
3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I address my message to Intel and I think some comments have to be made about Update 3. There are too many issues / problems for a new update!

Even if my post is Not related to reported bugs I hope that these codes will help with isolating some Intel C++ compiler problems after installing Update 3, or another versions:
...
#if __INTEL_COMPILER_BUILD_DATE == [ Add a Build Date of Update 3 Here! ]
#pragma message ( "*** Message: Compiling with Intel C++ v13.1.3 ***" )
//...
#endif

#if __INTEL_COMPILER_BUILD_DATE == 20130118
#pragma message ( "*** Message: Compiling with Intel C++ v13.1.2 ***" )
//...
#endif

#if __INTEL_COMPILER_BUILD_DATE == 20120731
#pragma message ( "*** Message: Compiling with Intel C++ v13.1.0 ***" )
//...
#endif

#if __INTEL_COMPILER_BUILD_DATE == 20120928
#pragma message ( "*** Message: Compiling with Intel C++ v12.1.7 ***" )
//...
#endif

#if __INTEL_COMPILER_BUILD_DATE == 20120130
#pragma message ( "*** Message: Compiling with Intel C++ v12.1.3 ***" )
//...
#endif

#if __INTEL_COMPILER_BUILD_DATE == 20060606
#pragma message ( "*** Message: Compiling with Intel C++ v8.1.038 ***" )
//...
#endif
...
If you see that Update 3 breaks some functionality use a conditional #if-#endif statement(s) to isolate a problem and try to apply a workaround(s) if it is possible.

Login to leave a comment.