(说明: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