[zorg] r297359 - Do not use parallel link jobs with ThinLTO on Green Dragon

Mehdi Amini via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 13 10:05:26 PDT 2017


I also plan to add a CMake warning in LLVM when ThinLTO is enabled but LLVM_PARALLEL_LINK_JOBS isn’t set. This is unlikely that it is intended by the end user.

— 
Mehdi

> On Mar 13, 2017, at 10:04 AM, Mehdi Amini via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> Hey David:
> 
> You’re right!  It seemed obvious to me when I committed, but in retrospect it clearly isn’t :)
> 
> I’ll add it here for posterity:
> 
> The linker is using as many threads as cores on the machine when performing a ThinLTO link. We don’t want to overcommit the machine by having many link steps running in parallel: this won’t improve build time (quite the opposite likely) and will increase memory consumption. I hesitated between 1 and 2, we can fine-tune later.
> 
>> Mehdi
> 
> 
> 
>> On Mar 13, 2017, at 9:32 AM, David Blaikie <dblaikie at gmail.com <mailto:dblaikie at gmail.com>> wrote:
>> 
>> It'd be helpful to include the motivation in the commit message so that there's some context for others (now and in the future/when doing archaeology).
>> 
>> On Wed, Mar 8, 2017 at 9:15 PM Mehdi Amini via llvm-commits <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
>> Author: mehdi_amini
>> Date: Wed Mar  8 23:03:53 2017
>> New Revision: 297359
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=297359&view=rev <http://llvm.org/viewvc/llvm-project?rev=297359&view=rev>
>> Log:
>> Do not use parallel link jobs with ThinLTO on Green Dragon
>> 
>> Modified:
>>     zorg/trunk/zorg/jenkins/build.py
>> 
>> Modified: zorg/trunk/zorg/jenkins/build.py
>> URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/jenkins/build.py?rev=297359&r1=297358&r2=297359&view=diff <http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/jenkins/build.py?rev=297359&r1=297358&r2=297359&view=diff>
>> ==============================================================================
>> --- zorg/trunk/zorg/jenkins/build.py (original)
>> +++ zorg/trunk/zorg/jenkins/build.py Wed Mar  8 23:03:53 2017
>> @@ -187,7 +187,10 @@ def cmake_builder(target):
>>      max_parallel_links = conf.max_parallel_links
>> 
>>      if conf.lto:
>> -        cmake_cmd += ["-DLLVM_PARALLEL_LINK_JOBS=" + str(max_link_jobs())]
>> +        if conf.thinlto:
>> +            cmake_cmd += ["-DLLVM_PARALLEL_LINK_JOBS=1"]
>> +        else:
>> +            cmake_cmd += ["-DLLVM_PARALLEL_LINK_JOBS=" + str(max_link_jobs())]
>>          cmake_cmd += ['-DLLVM_BUILD_EXAMPLES=Off']
>>          if not max_parallel_links:
>>              max_parallel_links = 1
>> @@ -374,7 +377,9 @@ def clang_builder(target):
>>              cmake_command.extend(
>>                  ['-DLLVM_LIT_ARGS={}'.format(' '.join(lit_flags))])
>> 
>> -            if conf.lto:
>> +            if conf.thinlto:
>> +                cmake_command.extend(["-DLLVM_PARALLEL_LINK_JOBS=1"])
>> +            elif conf.lto:
>>                  cmake_command.extend(
>>                      ["-DLLVM_PARALLEL_LINK_JOBS=" + str(max_link_jobs())])
>>              else:
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits>
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170313/75b72dd9/attachment.html>


More information about the llvm-commits mailing list