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

How to disable multiple mcpcom


I am using Intel XE 12.1 C++ compiler to compile a huge project but encoutering some issues.

1. If -g and -O2 are used together, the compiler will hang up for more than 24 hours.
2. During the linking phase, there are 4 mcpcom processes, and each one spends 29G memory.

My questions are,
1. Can -g coexist with -O2?
2. How can I disable the multiple mcpcom processes, that is, using only 1 mcpcom process to link the binary?

Thank you for your answering in advance.
0 Kudos
1 Reply
1. Yes, -g and -O2 can co-exist. But the debug information produced by the compiler is larger for optimized code since we generate more debug information to create correspondence between source lines and the generated code which has been re-arranged by the optimizer. BTW there are special compiler options that you need to use if you want to get debug information generated for inlined subprograms (O2 enables subprogram inlining). Read all about that in the User and Reference manual, the Linux option is -inline-debug-info
2. Concerning multiple mcpcom processes, those may occur by the program that is driving the overall build of your project (for example, Visual Studio may use multiple processes to build the project, use /maxcpucount to control the number of processes, and "make" command has the option "-j n" to control the number of parallel processes. Are you using -ipo, inter procedural compilation? The compiler option to control parallel ipo jobs--which occurs during the link phase--is -ipo-jobs1.
0 Kudos