freebsd-dev/lib/clang
Dimitry Andric 54ff5d7323 Add a SUBDIR_PARALLEL option to bsd.subdir.mk, to allow make to process
all the SUBDIR entries in parallel, instead of serially.  Apply this
option to a selected number of Makefiles, which can greatly speed up the
build on multi-core machines, when using make -j.

This can be extended to more Makefiles later on, whenever they are
verified to work correctly with parallel building.

I tested this on a 24-core machine, with make -j48 buildworld (N = 6):

                before    stddev       after    stddev
                =======   ======       =======  ======
real time        1741.1     16.5         959.8     2.7
user time       12468.7     16.4       14393.0    16.8
sys  time        1825.0     54.8        2110.6    22.8

(user+sys)/real     8.2                   17.1

E.g. the build was approximately 45% faster in real time.  On machines
with less cores, or with lower -j settings, the speedup will not be as
impressive.  But at least you can now almost max out a machine with
buildworld!

Submitted by:	jilles
MFC after:	2 weeks
2014-03-26 22:30:38 +00:00
..
include Add Makefile glue to build the Sparc backend libraries and link them 2014-02-20 22:22:39 +00:00
libclanganalysis Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangarcmigrate Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libclangast Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangbasic Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libclangcodegen Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangdriver Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangedit Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libclangfrontend Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libclangfrontendtool Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libclanglex Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libclangparse Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangrewritecore Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libclangrewritefrontend Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libclangsema Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangserialization Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libclangstaticanalyzercheckers Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangstaticanalyzercore Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libclangstaticanalyzerfrontend Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
liblldb Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbAPI Update LLDB bmake build for r262187 2014-02-18 19:58:01 +00:00
liblldbBreakpoint Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbCommands Update LLDB bmake build for r262187 2014-02-18 19:58:01 +00:00
liblldbCore Update LLDB bmake build for r262187 2014-02-18 19:58:01 +00:00
liblldbDataFormatters Update LLDB to upstream r194122 snapshot 2013-11-12 17:25:33 +00:00
liblldbExpression Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbHostCommon Update LLDB bmake build for r262187 2014-02-18 19:58:01 +00:00
liblldbHostFreeBSD Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbInterpreter Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginABISysV_x86_64 Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginCXXItaniumABI Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginDisassemblerLLVM Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginDynamicLoaderPosixDYLD Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginDynamicLoaderStatic Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginInstructionARM Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginObjectContainerBSDArchive Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginObjectFileELF Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginPlatformFreeBSD Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginPlatformGDB Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginProcessElfCore Update LLDB to upstream r194122 snapshot 2013-11-12 17:25:33 +00:00
liblldbPluginProcessFreeBSD lldb: Threaded inferior support for FreeBSD 2013-12-03 21:29:45 +00:00
liblldbPluginProcessGDBRemote Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginProcessPOSIX Update LLDB to upstream r194122 snapshot 2013-11-12 17:25:33 +00:00
liblldbPluginProcessUtility Update LLDB to upstream r196259 snapshot 2013-12-03 19:23:54 +00:00
liblldbPluginSymbolFileDWARF Update LLDB to upstream r194122 snapshot 2013-11-12 17:25:33 +00:00
liblldbPluginSymbolFileSymtab Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginSymbolVendorELF Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginUnwindAssemblyInstEmulation Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbPluginUnwindAssemblyX86 Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbSymbol Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
liblldbTarget Update LLDB bmake build for r262187 2014-02-18 19:58:01 +00:00
liblldbUtility Update LLDB to upstream r194122 snapshot 2013-11-12 17:25:33 +00:00
libllvmanalysis Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmarmasmparser Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmarmcodegen Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmarmdesc Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmarmdisassembler Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmarminfo Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmarminstprinter Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmasmparser Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmasmprinter Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmbitreader Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmbitwriter Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmcodegen Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmcore Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmdebuginfo Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmexecutionengine Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvminstcombine Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvminstrumentation Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvminterpreter Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmipa Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmipo Upgrade our copy of llvm/clang to r168974, from upstream's release_32 2012-12-03 19:24:08 +00:00
libllvmirreader Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmjit Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmlinker Upgrade our copy of llvm/clang to 3.3 release. 2013-06-12 18:48:53 +00:00
libllvmmc Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmmcdisassembler Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmmcjit Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmmcparser Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmmipsasmparser Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmmipscodegen Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmmipsdesc Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmmipsdisassembler Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmmipsinfo Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmmipsinstprinter Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmobjcarcopts Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmobject Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmoption Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmpowerpcasmparser Enable llvm's integrated assembler for PowerPC, since it should now be 2013-12-16 18:45:21 +00:00
libllvmpowerpccodegen Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmpowerpcdesc Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmpowerpcinfo Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmpowerpcinstprinter Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmruntimedyld Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmscalaropts Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmselectiondag Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmsparcasmparser Add Makefile glue to build the Sparc backend libraries and link them 2014-02-20 22:22:39 +00:00
libllvmsparccodegen Add Makefile glue to build the Sparc backend libraries and link them 2014-02-20 22:22:39 +00:00
libllvmsparcdesc Add Makefile glue to build the Sparc backend libraries and link them 2014-02-20 22:22:39 +00:00
libllvmsparcdisassembler Add Makefile glue to build the Sparc backend libraries and link them 2014-02-20 22:22:39 +00:00
libllvmsparcinfo Add Makefile glue to build the Sparc backend libraries and link them 2014-02-20 22:22:39 +00:00
libllvmsparcinstprinter Add Makefile glue to build the Sparc backend libraries and link them 2014-02-20 22:22:39 +00:00
libllvmsupport Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmtablegen Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmtarget Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmtransformutils Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmvectorize Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmx86asmparser Upgrade our copy of llvm/clang to trunk r178860, in preparation of the 2013-04-12 17:57:40 +00:00
libllvmx86codegen Upgrade our copy of llvm/clang to 3.3 release. 2013-06-12 18:48:53 +00:00
libllvmx86desc Upgrade our copy of llvm/clang to 3.4 release. This version supports 2014-02-16 19:44:07 +00:00
libllvmx86disassembler Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
libllvmx86info Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmx86instprinter Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
libllvmx86utils Pull in r170135 from upstream clang trunk: 2013-02-02 22:28:29 +00:00
clang.build.mk Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental. 2014-03-23 12:49:25 +00:00
clang.lib.mk Sprinkle a bit of style.Makefile(5) across various clang Makefiles. No 2012-08-23 17:08:07 +00:00
lldb.lib.mk Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
Makefile Add a SUBDIR_PARALLEL option to bsd.subdir.mk, to allow make to process 2014-03-26 22:30:38 +00:00