[LLVMdev] Compile C files to one .bc file
Rafael Avila de Espindola
rafael.espindola at gmail.com
Wed Mar 2 07:57:16 PST 2011
On 11-03-02 10:44 AM, Vincent De Bruyne wrote:
> Hi
>
> I'm trying to compile the "bh" C program from the Olden benchmark to one
> bc file.
>
> # compile source files into an LLVM bitcode file
> llvm-gcc -emit-llvm -c args.c -o args.bc -w -DTORONTO
> llvm-gcc -emit-llvm -c newbh.c -o newbh.bc -w -DTORONTO
> llvm-gcc -emit-llvm -c util.c -o util.bc -w -DTORONTO
> llvm-gcc -emit-llvm -c walksub.c -o walksub.bc -w -DTORONTO
>
> # To link files together using llvm-ld
> llvm-ld -o bh.bc newbh.bc args.bc util.bc walksub.bc -lm
Check what is in bh.bc. If I remember correctly llvm-ld used to create a
shell script that would run lli on the actual IL file.
> But when I try to run my pass over bh.bc file or just compile it to
> native code
> llc bh.bc -o bh.s
>
> I get the following error.
> llc: bh.bc:1:1:*error: expected top-level entity*
>
> Do you need to do some special stuff when you want to compile a C
> program with different files to one bc file.
For large programs you will probably a system linker that supports llvm
(the apple one) or plugin (gold and very recent versions of gnu ld).
For small programs using llvm-link or llvm-ld should be ok.
> Thx,
> Vincent
>
Cheers,
Rafael
More information about the llvm-dev
mailing list