[llvm-dev] Improving llvm-projects build

Dimitry Andric via llvm-dev llvm-dev at lists.llvm.org
Sun Feb 14 05:34:57 PST 2021


On 14 Feb 2021, at 14:15, Manas via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> I fairly regularly build LLVM (a forked up-to-date repo containing some
> custom LLVM passes). But when the build is large, it takes up almost all of
> my remaining RAM (~4 to 5 gigs). I usually run those builds at nights for it
> to complete.
> 
> Though I would like the build to not clog up entire RAM and just use some
> portion of it, so that I can also work alongside (and my system won't
> freeze). My current CMAKE command is:
> 
> ```
> cmake -G Ninja -DLLVM_TARGETS_TO_BUILD="X86;AMDGPU" \
>    -DLLVM_ENABLE_ASSERTIONS=ON \
>    -DCMAKE_C_COMPILER=/usr/bin/clang \
>    -DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
>    -DCMAKE_BUILD_TYPE=Debug \
>    -DLLVM_CCACHE_BUILD=ON \
>    -DLLVM_USE_LINKER=gold \
>    -DCMAKE_EXPORT_COMPILE_COMMANDS=1 \
>    ../llvm/
> ```
> 
> I found a SO answer claiming `gold` can improve upon memory usage, but I
> found almost no improvement.
> 
> Are there ways to restrict memory limit during build? Also, I should
> mention that I would like to build a Debug version as it is helpful.

Try adding:

-D LLVM_PARALLEL_LINK_JOBS=1

to your CMake invocation. This lowers the number of parallel link jobs, which (at last in my experience) tend to be the largest RAM consumers during a build.

-Dimitry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 223 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210214/5efd2c96/attachment.sig>


More information about the llvm-dev mailing list