[LLVMdev] Building bitcode modules

John Criswell criswell at illinois.edu
Thu Sep 29 09:43:36 PDT 2011

On 9/29/11 11:23 AM, Eric Christopher wrote:
> On Sep 29, 2011, at 12:53 AM, Speziale Ettore wrote:
>> Hi,
>>> What compiler are you using to build with? I've made it default to clang with less looking around for llvm-gcc, so there may be an issue there. What is your configure line? What host are you trying to build on?
>> First I have compiled llvm/clang compiled with "gcc (Gentoo 4.5.2 p1.1,
>> pie-0.4.5) 4.5.2". Then I have installed llvm/clang. They are in the
>> path:
>> $ clang --version
>> clang version 3.0 (http://llvm.org/git/clang.git
>> 53ce37ff4b44c59e5ac682d4558df980a8a3fa33)
>> Target: x86_64-unknown-linux-gnu
>> Thread model: posix
>> My llvm configure line is:
>> ../src/configure --prefix=/home/ettore/work/llvm/root
>> Host:
>> Linux ironman 2.6.35-gentoo-r10 #1 SMP Fri Oct 15 11:35:09 CEST 2010
>> x86_64 Intel(R) Xeon(R) CPU E5335 @ 2.00GHz GenuineIntel GNU/Linux
>> I have added a bitcode library to the sample project
>> I have modified the sample project to show my problem -- patch attached.
>> The warning comes from Makefile.rules:1192. The check is performed over
>> LLVMCC, set at Makefile.rules:428-443. Setting depends on
>> tried with 3699261d3f49d65cee6a645c849c41cdca51a01f -- these vars was
>> set throught the configure script, now they are not set.
> Aha. I see.
> I'd forgotten to remove that code when I moved the rest of the compiler support out of the top level configure for llvm. I hadn't realized anyone was using that functionality to build modules.
> Out of curiosity what are you using this for? I.e. is it absolutely important to build bitcode modules within the llvm build system?

(I'm jumping into the middle of this conversation as it looks like 
you're discussing something that might be relevant to my work.  Sorry 
I'm not up to speed on the full context of the discussion...)

If you are asking whether anyone is using machinery in LLVM's build 
system to compile programs into LLVM bitcode files, the answer is yes.  
The LLVM Makefile machinery is used not only by LLVM but by LLVM 
sub-projects like SAFECode, Automatic Pool Allocation, and others.  
Practically every project I work on (either research or open-source) is 
organized as a sub-project of LLVM.

We compile our run-time libraries into LLVM bitcode files so that their 
functions can be inter-procedurally inlined and optimized by LLVM 
(either by llvm-ld or by libLTO).  This is simple to do as defining a 
macro in the Makefile turns this feature on (BYTECODE_LIBRARY=1, IIRC).

If you remove this feature, I will most likely have to re-implement it 
in all of our projects' Makefiles.  I may have to update our test suite 
Makefiles as well.  I'm not sure how time consuming that would be, but 
I'd rather not have to change all of my projects if I don't have to, 
even if the change is trivial.

If you have already removed this feature, can you please revert the 
commits and add it back?

-- John T.

> -eric
> _______________________________________________
> 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