[PATCH] D52193: RFC: [clang] Multithreaded compilation support
Alexandre Ganea via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 17 14:37:08 PDT 2018
aganea created this revision.
aganea added reviewers: rnk, hans, zturner.
Herald added a reviewer: JDevlieghere.
Herald added a subscriber: cfe-commits.
This is very preliminary change which adds support for (`clang-cl`) `/MP` (Build with multiple processes). Doc for `/MP` is here <https://msdn.microsoft.com/en-us/library/bb385193.aspx>.
Support for `-j` to the `clang` driver could also be added along the way.
I would simply like a general advice on this change. **I don't plan to commit this as it is**. If the general idea seems good, I'll cut it down in several smaller pieces.
The change about having explicit return codes (`Program.h / enum ProgramReturnCode`) should probably be discussed separately, although if you have an opinion about that, please do.
Some timings //(I ran each configuration several time to ensure the figures are stable)//
Build LLVM + Clang + LLD (at r341847) inside VS2017:
(Intel Xeon Haswell 6 cores / 12 HW threads, 3.5 GHz, 15M cache, 128 GB RAM, SSD 550 MB/s)
- With VS2017 15.8.3: (56m 43 sec) 2 parallel msbuild
- With Clang /MP + LLD (trunk r341847) [1]: (51m 8sec) 2 parallel msbuild
(Intel Xeon Skylake 18 cores / 36 HW threads, x2 (Dual CPU), 72 HW threads total, 2.3 GHz, 24.75M cache, 128 GB RAM, NVMe 4.6 GB/s)
- With VS2017 15.8.3: (12m 8sec) 32 parallel msbuild
- With Clang /MP + LLD (trunk r341847) [1]: (9m 22sec) 32 parallel msbuild
[1] running clang-cl.exe compiled with VS2017 15.8.3 at r341847
Please add anyone who might want to review this. Many thanks in advance!
Repository:
rC Clang
https://reviews.llvm.org/D52193
Files:
clang/trunk/include/clang/Driver/CLCompatOptions.td
clang/trunk/include/clang/Driver/Compilation.h
clang/trunk/include/clang/Driver/Driver.h
clang/trunk/include/clang/Driver/Job.h
clang/trunk/lib/Driver/Compilation.cpp
clang/trunk/lib/Driver/Driver.cpp
clang/trunk/lib/Driver/Job.cpp
clang/trunk/tools/driver/cc1_main.cpp
clang/trunk/tools/driver/cc1as_main.cpp
clang/trunk/tools/driver/cc1gen_reproducer_main.cpp
clang/trunk/tools/driver/driver.cpp
llvm/trunk/include/llvm/Support/Program.h
llvm/trunk/lib/Support/GraphWriter.cpp
llvm/trunk/lib/Support/Program.cpp
llvm/trunk/lib/Support/Windows/DynamicLibrary.inc
llvm/trunk/lib/Support/Windows/Process.inc
llvm/trunk/lib/Support/Windows/Program.inc
llvm/trunk/lib/Support/Windows/WindowsSupport.h
llvm/trunk/tools/bugpoint/ExecutionDriver.cpp
llvm/trunk/tools/bugpoint/OptimizerDriver.cpp
llvm/trunk/tools/bugpoint/ToolRunner.cpp
llvm/trunk/tools/bugpoint/ToolRunner.h
llvm/trunk/tools/dsymutil/MachOUtils.cpp
llvm/trunk/tools/llvm-cov/CodeCoverage.cpp
llvm/trunk/unittests/Support/ProgramTest.cpp
llvm/trunk/utils/not/not.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D52193.165831.patch
Type: text/x-patch
Size: 91326 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180917/982bd350/attachment-0001.bin>
More information about the cfe-commits
mailing list