[LLVMdev] Adding sub-commands and option classes to the command line library.

Tobias Grosser tobias at grosser.es
Sun Oct 23 03:16:41 PDT 2011

On 10/23/2011 12:27 AM, Michael Spencer wrote:
> There was discussion on IRC about merging all of the compiler hacker
> tools (llvm-as, bugpoint, llc, lli, etc...) into a single llvm
> megatool. This tool would work similar to how most version control cli
> programs work. One would call 'llvm as bitcode.ll' instead of 'llvm-as
> bitcode.ll'. The main reason for this is to improve link time, but it
> also reduces the total file size (especially in the case of static
> linking), and makes it easier to discover the tools available.

Why don't you use --enable-shared for this? Does this not solve the file 
size and the link time problem?

I am a little worried the additional complexity in the command line 
system and other parts of LLVM are worth the benefits. At the moment 
tools like 'opt' are nice and simple examples of how to use LLVM. They 
allow new people to jump into LLVM and understand its structure easily.

Also, your proposal may increase the link and compilation time for me.
I mainly develop opt passes and often want to recompile the opt tool, 
but don't really care about anything else. Following your proposal, the
linking of the mega tool would draw in a lot more libraries as opt uses 
today and therefore will take significantly longer. I may solve this 
with --enable-shared, but I will still have the problem that unrelated 
libraries need to be recompiled, in case some global header changed. 
Today only the necessary libraries are recompiled which should be a lot 


More information about the llvm-dev mailing list