[LLVMdev] Generating IR bytecode files of httpd source code
119 views
Skip to first unread message
teja tamboli
unread,
Mar 12, 2013, 8:16:32 PM3/12/13
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to llv...@cs.uiuc.edu
Hi,
I want to compile apache httpd using LLVM compiler. However, I am interested in generating llvm bytecode files [.s or .ll] files along with its executables. I followed steps mentioned in link :
I want to generate intermediate byte code files. My aim is to run some optimizers on these bytecode files and then generate executables.
How should I change this command or what approach I should take to do this.
Thanks in advance !
--
Regards, Teja
John Criswell
unread,
Mar 12, 2013, 8:31:20 PM3/12/13
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to teja tamboli, llv...@cs.uiuc.edu
On 3/12/13 7:16 PM, teja tamboli wrote:
Hi,
I want to compile apache httpd using LLVM compiler. However,
I am interested in generating llvm bytecode files [.s or .ll]
files along with its executables. I followed steps mentioned in
link :
The first problem may be that the -emit-llvm option may not be used
to compile the code. Double-check your logs of the builds to make
sure that it is. If it is not, then you may need to modify the
build Makefiles in the build directory to get it to do this.
The second problem is that while your object files will be LLVM
bitcode, your final executable will still be native code because
that is what libLTO does when it is told to generate a final
executable. There are two ways to handle this:
1) Modify libLTO to run your LLVM passes for you. In many cases,
this is the best way to do things, and it's how we do whole-program
analysis in SAFECode.
2) Modify libLTO to dump the bitcode file it generates to a separate
file just before it does code generation. I think the SAFECode
libLTO code does this if the HAVE_POOLALLOC symbol is defined, so
you can use it as a guide.
3) Modify the Apache build system to link all the files together
into a single .o file instead of trying to create a final
executable. With -emit-llvm, that file .o files will be an LLVM
bitcode file.
I want to generate intermediate byte code files. My aim
is to run some optimizers on these bytecode files and then
generate executables.
If you're doing optimizations, then option 1 is by far your best
bet, IMHO. You can look at SAFECode's libLTO for an example.
-- John T.
How should I change this command or what approach I
should take to do this.
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to John Criswell, llv...@cs.uiuc.edu
Thanks John for quick reply. I used -O4 instead of "-emit-llvm" in CFLAGS option. I was just trying different options in CFLAGS to get IR byte code and pasted here with that option. Sorry !