[LLVMdev] Compile a large project with llvm?

Wink zhang winkqrzhang at gmail.com
Fri Mar 5 07:32:10 PST 2010


Dear John,

Thanks for your reply. I want to do  whole program analysis, all what I 
need are just the separate .bc files. What instructions should I follow?


I run the configure on apache in this way:

CC=clang CFLAGS=-emit-llvm ./configure

while I get the error message like:
checking for gcc... clang
checking for C compiler default output file name... configure: error: C 
compiler cannot create executables



Did I miss something? Thanks.


-Wink

John Criswell wrote:
> Wink zhang wrote:
>> Hi,
>>
>> How to compile a large project (such as Apache) by using llvm-gcc?
>> I tried to replace CC with llvm-gcc and CFLAGS with -emit-llvm while 
>> running configure, but it didn't work.
>>   
> If you just want to compile the program with llvm-gcc, then Diego's 
> instructions are fine.
>
> If, however, you want to do inter-procedural optimization or whole 
> program analysis, then there's additional things you need to do.
>
> If you just want to use LLVM's link-time optimizations, you will need 
> to use the libLTO library with your linker.  Your linker, in turn, 
> must be able to support plugins (like the gold linker, for example).  
> For directions on how to set up libLTO, see 
> http://llvm.org/docs/LinkTimeOptimization.html and 
> http://llvm.org/docs/GoldPlugin.html.
>
> If you want to write and use your own link-time passes, then you have 
> several options:
>
> 1) Modify the program's Makefiles to use llvm-ld to link bitcode files 
> together.  This will allow you to generate a single bitcode image.
>
> 2) Modify libLTO to run your analysis and transform passes.  If you 
> plan to work with several large applications, this is probably the way 
> to go.  SAFECode has a version of libLTO that does whole-program 
> analysis; you can find this tool in the safecode/tools/LTO directory 
> in the SAFECode source code (directions for getting SAFECode are at 
> http://safecode.cs.illinois.edu/downloads.html).  This approach can 
> sometimes alleviate the need for changing the Makefiles.
>
> -- John T.
>> Thank you for your help.
>>
>> -Wink
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>   
>
>




More information about the llvm-dev mailing list