前提
-
安装cmake
-
llvm 下载, github.com/llvm/llvm-p…
编译并安装
编译安装llvm
cd llvm-project
mkdir build
cd build
cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE="Release" ../llvm
make && make install
大约要几个小时
编译安装Clang
cd llvm-project
mkdir clang_build
cd clang_build
cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE="Release" ../clang
make && make install
大约要几个小时
案例测试
// demo.c
int test(int a,int b) {
int x = a + b;
int y = a + b;
return x + y;
}
clang demo.c -emit-llvm -S -O -Xclang -disable-llvm-passes -o demo.ll \
&& opt -passes=mem2reg -S demo.ll -debug-pass-manager -stats -o out.ll > /dev/null 2>&1 \
&& cat out.ll