[llvm-dev] Organization of LLVM utilities

Paul C. Anagnostopoulos via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 4 13:34:39 PDT 2020

Until people pointed it out, it hadn't registered that of course TableGen is not just one table generator, but many, depending on the backends attached. So the common code is separate from the various backends for at least that reason.

At 8/4/2020 04:06 PM, Chris Lattner wrote:
>It may be confusing but it is not the case that “llvm/lib” contains all the libraries, and “llvm/tools” contains all the tools.  At a course grain, the main llvm repo builds in four phases:
>1) llvm/utils.  -> this builds some executables like tablegen
>2) llvm/lib.     -> This is all libraries, shouldn’t include executables.
>3) llvm/tools. -> Generally executables, also some libraries that are tool specific.
>4) tests..        -> Things that depend on the above.
>In theory, we could have a much finer grain build system that allows tracking exactly which tests depend on which executables, which executables depend on which libraries, etc, but this hasn’t been done.  In theory this could help the build cycle if you’re running a single “llvm-mc” like test, for example.

More information about the llvm-dev mailing list