[cfe-dev] Too much time to compile clang. Suggestions for a starter?

Jan Korous via cfe-dev cfe-dev at lists.llvm.org
Mon Oct 23 06:31:38 PDT 2017


You might also consider building only those backends you are actually using.
E. g.:
cmake -DLLVM_TARGETS_TO_BUILD=X86 ...

More info:
https://llvm.org/docs/CMake.html#llvm-specific-variables

> On Oct 21, 2017, at 4:10 PM, rNoz via cfe-dev <cfe-dev at lists.llvm.org> wrote:
> 
> Thank you very much, Jonas, Nicolas and Oleksii.
> 
> I read those blogs and applied just this:
> 
> cp ../../llvm-support/AddLLVM.cmake.gold ../cmake/modules/AddLLVM.cmake
> (I modified those lines in the reviews.llvm.org).
> CXX=clang++ CC=clang cmake LD=ld.gold -G Ninja .. -DLLVM_USE_LINKER=gold
> -DBUILD_SHARED_LIBS=ON -DLLVM_USE_SPLIT_DWARF=ON
> -DLLVM_OPTIMIZED_TABLEGEN=ON .. && ninja clang
> 
> And with just the same modification (int a = 22; in that class) I get
> compiled/linked in JUST 10-3 SECONDS.
> 
> Impressive!
> 
> Thanks again. This thread can be closed.
> 
> 
> On 21/10/17 15:27, Jonas Hahnfeld wrote:
>> A few links that Google found in a simple search:
>>  - this thread:
>> http://lists.llvm.org/pipermail/llvm-dev/2016-October/106186.html
>>  - https://llvm.org/devmtg/2015-04/slides/eurollvm-2015-build.pdf and
>> these two blog posts:
>> https://blogs.s-osg.org/an-introduction-to-accelerating-your-build-with-clang/
>> and
>> https://blogs.s-osg.org/a-conclusion-to-accelerating-your-build-with-clang/
>> 
>> I personally took most of the advices from the last blog posts:
>>  - Ninja, use Clang to build
>>  - for Debug builds: -DBUILD_SHARED_LIBS=ON -DLLVM_USE_SPLIT_DWARF=ON
>> -DLLVM_OPTIMIZED_TABLEGEN=ON
>> 
>> Cheers,
>> Jonas
>> 
>> Am 2017-10-21 05:11, schrieb rNoz via cfe-dev:
>>> I would like to start "touching" a bit the code, trying to create some
>>> functionalities, but I have no idea where to start, and I will need
>>> many trials/tests...
>>> 
>>> So, one thing I was expecting is fast times to try
>>> (Modify-Compile-Run).
>>> 
>>> I did:
>>> 
>>> make clang
>>> and it needed like 3-4 hours. I am ok with that.
>>> 
>>> Then, I add some "stupid" statement like 'int a = 3;' somewhere in
>>> llvm/tools/clang/lib/Frontend/Rewrite/FixItRewriter.cpp
>>> (FixitRewriter::Diag), and it needed:
>>> - 6.57S. TO COMPILE THE TARGET ('MAKE CLANGREWRITEFRONTEND').
>>> - 4MIN 36.36S TO LINK AND BUILD CLANG (`MAKE CLANG`).
>>> In both cases it spends almost all the time LINKING (first to a static
>>> lib, then to the clang binary itself).
>>> 
>>> This is really a lot of time to try bit a bit without knowledge of the
>>> whole clang, compiling process, etc. Waiting up to is just really time
>>> consuming.
>>> 
>>> What would you do to try the modifications faster?
>>> 
>>> Any recomendation/blog/guide to follow as a starter trying to modify a
>>> bit the codebase of clang?
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev




More information about the cfe-dev mailing list