Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Wubo_Zhang
Beginner
156 Views

How to disable multiple mcpcom

Hello,

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
Melanie_B_Intel
Employee
156 Views

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.
Reply