[llvm-dev] Should we split llvm Support and ADT?

Matthias Braun via llvm-dev llvm-dev at lists.llvm.org
Tue May 30 13:21:04 PDT 2017


> On May 30, 2017, at 1:16 PM, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> 
> 
> On Tue, May 30, 2017 at 12:52 PM Bob Haarman via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> I would like to better understand how you came to conclude that the tablegen re-runs based on changes in Support are what's causing your build to be slow and what part specifically is taking all that time. I can do a clean release + assertions build of LLVM, Clang, compiler-rt and lld in about 5 minutes, plus 40 seconds to run cmake, on what I think is similar hardware to what Zach is using. If I swap Ptr += ret and Size -= Ret in raw_fd_ostream::write_impl so that Support changes, I can do an incremental build in about 10 seconds, including the regeneration of various .inc files. How do we get from there to 10 minutes for an incremental build?
> 
> Which build system are you using?
> 
> On my build config (16 core/32 thread, 128GB RAM) it takes 47 user seconds to rebuild the clang binary after making the change you mentioned - with ninja and lld, host compiler is a recent release build of clang. Ninja reports building 377 things.

At least for me ninja starts with a high estimated number of files needing a rebuild. But the number of targets immediately jumps down by several hundreds as soon as ninja realizes that the tablegen output didn't actually change.

- Matthias

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170530/cf11bfe7/attachment.html>


More information about the llvm-dev mailing list