[cfe-dev] [llvm-dev] Build clang front end only for few languages ( say C and C++ )

Mehdi AMINI via cfe-dev cfe-dev at lists.llvm.org
Fri Sep 22 18:03:06 PDT 2017


2017-09-22 11:04 GMT-07:00 Vedant Kumar via cfe-dev <cfe-dev at lists.llvm.org>
:

>
> On Sep 22, 2017, at 10:55 AM, Nitish Srivastava <nks45 at cornell.edu> wrote:
>
> Hi Vedant,
>
>   Clang + llvm build together takes around 26 GB. I was curious if there
> are any tricks to reduce the size as I need only C and C++ languages in
> frontend and RISCV ISA for llvm backend. For the backend I am already
> passing -DLLVM_TARGETS_TO_BUILD=RISCV to generate the backend only for
> RISCV. I was curious if I can do something to reduce the size of the clang
> build.
>
>
> Some ideas:
>
> 1. It sounds like you might have configured a Debug build. If you don't
> need to debug clang, you can configure a Release build instead, which will
> be much smaller.
>
> 2. You can enable a shared-library build to cut down on binary size
> (-DBUILD_SHARED_LIBS=On). That means there will be just one copy of the
> code from each llvm library in your build directory, instead of two.
>
> 3. You can pare down the list of targets you build. Just building the
> "clang" target is much faster, and takes much less space, than building the
> full suite of llvm tools (which is what you get if you run "ninja" or
> "make").
>
> 4. If you're building a Release clang, you can use -Os or -Oz, instead of
> -O3 which is the default.
>

I'd add on top of this to enable only the backend you care about, for
example `-DLLVM_TARGETS_TO_BUILD=X86`, disable plugins
`-CLANG_PLUGIN_SUPPORT=OFF` and try to enable LTO `-DLLVM_ENABLE_LTO=ON`
(the latter may not be a win though, but with -Os hopefully it will!).

The clang binary can get down to ~50MB, but I suspect getting it smaller is
likely gonna require more intrusive work.

Best,

-- 
Mehdi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170922/59d84fad/attachment.html>


More information about the cfe-dev mailing list