您的位置:首页 > 运维架构

Ubuntu下llvm之pass初探

2014-01-13 20:10 417 查看
(说明: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu llvm pass opt make