This is an archive of the discontinued LLVM Phabricator instance.

Break false dependencies on target libraries
ClosedPublic

Authored by dsanders on May 23 2019, 11:04 AM.

Details

Summary

For the most part this consists of replacing ${LLVM_TARGETS_TO_BUILD} with
some combination of AllTargets* so that they depend on specific components
of a target backend rather than all of it. The overall effect of this is
that, for example, tools like opt no longer falsely depend on the
disassembler, while tools like llvm-ar no longer depend on the code
generator.

There's a couple quirks to point out here:

  • AllTargetsCodeGens is a bit more prevalent than expected. Tools like dsymutil seem to need it which I was surprised by.
  • llvm-xray linked to all the backends but doesn't seem to need any of them. It builds and passes the tests so that seems to be correct.
  • I left gold out as it's not built when binutils is not available so I'm unable to test it

Diff Detail

Repository
rL LLVM

Event Timeline

dsanders created this revision.May 23 2019, 11:04 AM
dsanders edited the summary of this revision. (Show Details)May 23 2019, 11:09 AM
bogner accepted this revision.May 23 2019, 1:23 PM

This looks great. Looking forward to faster incremental builds!

This revision is now accepted and ready to land.May 23 2019, 1:23 PM
This revision was automatically updated to reflect the committed changes.