- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page