[llvm-commits] [PATCH] Add MSVC multi processor compilation to build system

Francois Pichet pichet2000 at gmail.com
Tue Mar 1 20:41:08 PST 2011


On Tue, Mar 1, 2011 at 10:36 PM, Erik Olofsson <Erik.Olofsson at hansoft.se> wrote:
>> -----Original Message-----
>> From: Óscar Fuentes [mailto:ofv at wanadoo.es]
>>
>> > Yes, this is even better. Would you like that code in
>> > HandleLLVMOptions.cmake or CMakeLists.txt or both with option
>> > definition split from logic?
>>
>> Put everything in HandleLLVMOptions.cmake, so it can be used when Clang
>> is built using LLVM as an external library.
>
> Sorry, I just sent a patch that was split before I saw your message, please ignore it. A patch for only HandleLLVMOptions.cmake attached.
>
>> Certainly, there are superfluous tblgen dependencies, but accurately
>> determining them is tricky. About the dependencies between libraries,
>> there are some among LLVM targets and its subsidiaries (e.g. LLVMX86 and
>> LLVMX86AsmParser) and sometimes a dependency is declared from a library
>> into another when, actually, it should be on its tablegenned products (e.g.
>> LLVMX86 depending on LLVMTarget). In general, those cases can be easily
>> fixed, although I've seen cases of linker errors on Linux due to missing
>> vtables while linking the LLVM tools. If you know more instances of
>> unnecessary inter-library dependencies, please mention them.
>
> Actually LLVM looks pretty good, it's clang that has more dependencies. For example clangParse has a dependecy on clangLex.
>
>> Parallel builds work fine on Linux with make -jN, there is little room to
>> improve, but it seems that tablegenning on Windows is slow (in release
>> mode, if you are building on debug mode it can take a very long time. I
>> thought about always building tblgen.exe on release mode for avoiding
>> such excruciating build times.)
>
> I was building in Debug mode so tblgen in Release mode would probably help a lot, but one tblgen project includes to several tblgen, this gives room for improvement on msbuild where they are all run sequentially in each project.
>
> Regards,
> Erik

hi

Using MSVC 2010 and quadcore.

Complete build (release) trunk: 14 mins 45 secs
Complete build (release) trunk + patch: 14mins 40 secs

It is within the margin of error here.

so to me this patch doesn't speed things up. Builds are already
multi-processor on a per project basis.




More information about the llvm-commits mailing list