LLVM初学简单教程

1,下载相关源码包:
 
 wget -c http://llvm.org/releases/2.7/llvm-2.7.tgz
 wget -c http://llvm.org/releases/2.7/clang-2.7.tgz
 wget -c http://llvm.org/releases/2.7/llvm-gcc-4.2-2.7.source.tgz
 wget -c http://llvm.org/releases/2.7/llvm-test-2.7.tgz
 
llvm-2.7.tgz是LLVM的主要源码包
clang-2.7.tgz:Clang前端
llvm-gcc-4.2-2.7.source.tgz:GCC4.2前端,llvm-test-2.7.tgz:LLVM 测试验证包。

2,接下来就是解压源码:
 
解压缩LLVM-2.7源码
 tar xzf llvm-2.7.tgz

解压缩Clang源码到llvm27/tools/clang/下  (PS:按照指定的目录执行)
 tar xzf llvm-tar/clang-2.7.tgz
 cp -r clang-2.7 llvm-2.7/tools/clang
 
3,标准步骤,configure,make,make install
 
 mkdir llvm-build
 cd llvm-build
 ../llvm-2.7/configure --prefix=/home/lingcc --disable-optimize
 make
 make install

4.testsuite要特殊对待。
 解压缩llvm-test-2.7.tgz到llvm-2.7/projects/test-suite/下
 tar xzf llvm-tar/llvm-test-2.7.tgz
 cp -r llvm-test-2.7 llvm-2.7/projects/test-suite
 cd llvm-build
 ../llvm-2.7/configure --prefix=/home/lingcc --disable-optimize
 cd llvm-build/projects/test-suite/
 gmake
 日后的改动,都可以在llvm-build/projects/test-suite/验证正确性。
 5.做个实验!helloworld
 新建一个hello.c文件:
#include
 int main()
 {
 printf("hello,LLVM\n");
 return 0;
}

 直接生成可执行文件:
 clang hello.c -o hello -v
 使用-v选项能看到,clang负责生成了汇编文件.s,然后/usr/bin/gcc负责将汇编文件转为.o文件,进而生成hello可执行文件。
 
生成LLVM中间表示文件.bc:
 clang hello.c -c -o hello.bc -emit-llvm -v
 用LLVM虚拟机执行
 lli hello.bc
 看看输出结果是不是一致。。。
 
转换为可读模式的LLVM中间表示:
 llvm-dis < hello.bc
 将LLVM中间表示转换为汇编语言文件:
 llc hello.bc -o hello.s
 汇编文件就可以直接使用GCC转换为可执行文件了
 gcc hello.s -o hello.native
 执行一下:
 ./hello.native
 显示结果。。。

 

你可能感兴趣的:(教程,编译器,初学,llvm,Clang)