This is an archive of the discontinued LLVM Phabricator instance.

[coff] default to multiple parallel ThinLTO jobs
ClosedPublic

Authored by inglorion on Apr 12 2017, 11:24 AM.

Details

Summary

lld-link allows the number of parallel ThinLTO jobs to be specified
using /opt:lldltojobs=N. If left unspecified, the implementation
conservatively defaults to 1. This leads to very long link times. This
change makes it so that the default is to automatically set the
parallelism, as we do in the ELF linker.

Diff Detail

Repository
rL LLVM

Event Timeline

inglorion created this revision.Apr 12 2017, 11:24 AM
ruiu accepted this revision.Apr 12 2017, 11:27 AM

LGTM. Seems reasonable.

This revision is now accepted and ready to land.Apr 12 2017, 11:27 AM
hans edited edge metadata.Apr 12 2017, 11:29 AM

Seems reasonable to me, but I'm not familiar with the difference between LTOJobs and LTOPartitions. Does it make sense to have multiple jobs but just one partition? I thought the point of ThinLTO was to process multiple partitions in parallel.

pcc added a subscriber: pcc.Apr 12 2017, 11:31 AM
In D31986#725140, @hans wrote:

Seems reasonable to me, but I'm not familiar with the difference between LTOJobs and LTOPartitions. Does it make sense to have multiple jobs but just one partition? I thought the point of ThinLTO was to process multiple partitions in parallel.

LTOPartitions is used by parallel LTO code generation, which is a separate feature to ThinLTO.

hans accepted this revision.Apr 12 2017, 11:33 AM
In D31986#725147, @pcc wrote:
In D31986#725140, @hans wrote:

Seems reasonable to me, but I'm not familiar with the difference between LTOJobs and LTOPartitions. Does it make sense to have multiple jobs but just one partition? I thought the point of ThinLTO was to process multiple partitions in parallel.

LTOPartitions is used by parallel LTO code generation, which is a separate feature to ThinLTO.

I see. LGTM then.

This revision was automatically updated to reflect the committed changes.