4 ms·
No it doesn't, cl.exe's compiler is an inherently single threaded application. Parallelism in VC++ is achieved by running multiple copies of cl.exe with one ser
by Kranar 6y ago
No it doesn't, cl.exe's compiler is an inherently single threaded application. Parallelism in VC++ is achieved by running multiple copies of cl.exe with one serving as the primary instance and the rest as followers. The primary instance forwards individual translation units to the followers and waits for the followers to complete compilation, then at the end the primary instance terminates and the linker is invoked.
- pjmlp 6y agoNot up to date? https://docs.microsoft.com/en-us/cpp/build/reference/cgthreads-code-generation-threads?view=msvc-160 https://docs.microsoft.com/en-us/cpp/build/reference/cgthrea...
- Kranar 6y agoThat is a linker option, not a compiler option. Modules have no effect on linking one way or another as linking is fairly independent of the compilation process.
- pjmlp 6y agoI mentioned code generation, you don't execute .obj files.
- Kranar 6y agoThen your comment is off-topic and creates confusion. My point was modules inhibit the parallelism of the compilation process, compile times, not that it has any effect on the link times. Modules do not have any effect on the linker one way or another. They are independent of it.
- pjmlp 6y agoModules will bring compiler and linker work more closer, just like other languages not tainted by UNIX toolchain model. Some C++ developers can keep using their pre-historic UNIX like tooling, whereas others will embrace the fusion of compiler, linker and build system.