(说明:llvm版本2.9)
1.根据http://llvm.org/releases/2.9/docs/GettingStarted.html#tutorial
写一个hello world并编译(后面要用到.bc文件)
#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
>
% llvm-gcc hello.c -o hello
>
% llvm-gcc -O3 -emit-llvm hello.c -c -o hello.bc
% ./hello
% lli hello.bc
llvm-dis < hello.bc | less
% llc hello.bc -o hello.s
Solaris: % /opt/SUNWspro/bin/cc -xarch=v9 hello.s -o hello.native
Others: % gcc hello.s -o hello.native
>
% ./hello.native
2.在llvm-2.9/lib/Transforms/Hello(llvm自带的pass例子)目录下执行make指令:
> $ make
(安装llvm时已经执行make指令在llvm-2.9/Release+Asserts/lib/中产生了LLVMHello.so文件)
3.Running a pass with opt
$ cd test/llvm/hello
gfj@gfj-virtual-machine:~/test/llvm/hello$ opt -load /home/gfj/work/llvm-2.9/Release+Asserts/lib/LLVMHello.so -hello < hello.bc > /dev/null
Hello: main
本文介绍如何使用 LLVM 2.9 编译简单的 Hello World 程序,并展示如何通过 LLVM 的自带 pass 例子进行编译流程演示。文章详细记录了从源代码到生成目标代码的全过程。
132

被折叠的 条评论
为什么被折叠?



