David A. Greene
2011-Nov-01 22:09 UTC
[LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes
Óscar Fuentes <ofv at wanadoo.es> writes:> Okay, we can get rid of recursive make. However, as pointed out > elsewhere, removing recursive make will not make a difference on the > LLVM build. What David Greene says probably is related to difference > sizes among his compiler and LLVM.Ok, whatever. I'm done arguing experiences. -Dave
On Tue, Nov 1, 2011 at 3:09 PM, David A. Greene <greened at obbligato.org> wrote:> Óscar Fuentes <ofv at wanadoo.es> writes: > >> Okay, we can get rid of recursive make. However, as pointed out >> elsewhere, removing recursive make will not make a difference on the >> LLVM build. What David Greene says probably is related to difference >> sizes among his compiler and LLVM.I doubt that's true: Chromium's empty build is faster than llvm's (only tried the make build, not the cmake build), and chromium's code base is considerably larger. Nico
David A. Greene
2011-Nov-01 22:23 UTC
[LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes
Nico Weber <thakis at chromium.org> writes:> On Tue, Nov 1, 2011 at 3:09 PM, David A. Greene <greened at obbligato.org> wrote: >> Óscar Fuentes <ofv at wanadoo.es> writes: >> >>> Okay, we can get rid of recursive make. However, as pointed out >>> elsewhere, removing recursive make will not make a difference on the >>> LLVM build. What David Greene says probably is related to difference >>> sizes among his compiler and LLVM. > > I doubt that's true: Chromium's empty build is faster than llvm's > (only tried the make build, not the cmake build), and chromium's code > base is considerably larger.Here's the dirty little secret. At Cray we incorporated LLVM into our build system. We don't use the autoconf+make stuff at all for our compiler build. We do use the "official" LLVM way to build the LLVM tree so we can use the tools (opt, llc, etc.). And guess what? A non-recursive build of all the Cray components (and it's a huge source base, at least as large as LLVM and probably larger) + most of LLVM (we don't build all targets) is much faster than a build of just the LLVM tree using the "official" recursive make way. I believe that to be true both for an empty build AND a full rebuild, though I would have to gather hard data to be sure about the latter. Autoconf is another matter. Autoconf is horribly slow. But we are not getting rid of autoconf, unfortunately. :) -Dave
Óscar Fuentes
2011-Nov-01 23:16 UTC
[LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes
Nico Weber <thakis at chromium.org> writes:> On Tue, Nov 1, 2011 at 3:09 PM, David A. Greene <greened at obbligato.org> wrote: >> Óscar Fuentes <ofv at wanadoo.es> writes: >> >>> Okay, we can get rid of recursive make. However, as pointed out >>> elsewhere, removing recursive make will not make a difference on the >>> LLVM build. What David Greene says probably is related to difference >>> sizes among his compiler and LLVM. > > I doubt that's true: Chromium's empty build is faster than llvm's > (only tried the make build, not the cmake build), and chromium's code > base is considerably larger.What David was saying is that Cray's compiler *non-empty* build ends sooner than the LLVM *empty* build completes. Well, if only a small translation unit needs to be compiled into a small executable (no long compiler/linker waits) it may be possible but, again, it only speaks about the relative sizes of LLVM/Cray's compiler. WRT your Chromium example, the crux is not so much about what is faster, but about what is considered slow. Chromium's empty build being faster than LLVM is of no significance if LLVM's empty build can't be considered annoyingly slow. And I wouldn't say that 1.3 seconds on a rather ordinary desktop is annoyingly slow.
Apparently Analagous Threads
- [LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes
- [LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes
- [LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes
- [LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes
- [LLVMdev] [cfe-dev] RFC: Upcoming Build System Changes