[LLVMdev] Migrate Project Build system to LLVM BitCode

Sahoo, Swarup Kumar ssahoo2 at illinois.edu
Thu Jan 17 07:10:17 PST 2013


Hi Ahmad,

   If the Makefile contains only this command, then it is not worth spending time on GoldPlugin. If you are building a large project, then it will be simpler to use GoldPlugin.

  The steps you are using seem right. You can possibly combine the last two steps (3&4) using only 1 clang command.

 clang -g -O2 -o .libs/mergedexe .libs/mergedbc.bc -pthread -Wl,--export-dynamic   .libs/lib1.a   -lssl -lcrypto –ldl –pthread .libs/lib2.so

-Swarup.

________________________________
From: llvmdev-bounces at cs.uiuc.edu [llvmdev-bounces at cs.uiuc.edu] on behalf of Hassan, Ahmad [ahmad.hassan at sap.com]
Sent: Thursday, January 17, 2013 7:56 AM
To: llvmdev at cs.uiuc.edu
Subject: [LLVMdev] Migrate Project Build system to LLVM BitCode

Hi All,

I am migrating a build system of an existing project from ‘Object files’ based executable generation to ‘LLVM Bitcode’ files based exe generation and applying OPT pass to LLVM Bitcode. I found out the following 4 step procedure. Please let me know if this is the right procedure or is there any other easy way of doing it. I need to modify ‘Makefile’ accordingly. I read on some forums about GoldPlugin but I don’t know exactly if it would be useful here:

Original Makefile- Object Files based Build/Link Steps:
clang -g -O2   –o  .libs/mergedexe  file1.o    file2.o   file3.o   -pthread -Wl,--export-dynamic   .libs/lib1.a   -lssl –ldl –pthread .libs/lib2.so

Proposed Makefile- LLVM Bitcode based Build/Link Steps:

1.       llvm-link -o .libs/mergedbc.bc   file1.bc    file2.bc   file3.bc

2.       opt  –o  optmerged.bc  -load /path/to/Mypass.so  -mypass <  mergedbc.bc

3.       llc  -o .libs/mergedbc.s    .libs/mergedbc.bc

4.       gcc -g -O2 -o .libs/mergedexe  .libs/mergedbc.s  -pthread -Wl,--export-dynamic   .libs/lib1.a   -lssl -lcrypto –ldl –pthread .libs/lib2.so

Thanks.

Ahmad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130117/4ace3622/attachment.html>


More information about the llvm-dev mailing list