1. 程式人生 > >LLVM學習日誌1 ——LLVM的下載與安裝

LLVM學習日誌1 ——LLVM的下載與安裝

不得不寫一個系列,因為手中的工作要圍繞著LLVM展開。具體介紹可以去官網檢視。我之前有過一點點接觸,但是放棄了。這次重新拾起,寫這個系列,是一個總結,也是激勵自己一直學下去。先定個小目標,給已有的指令集增加一條指令(比如arm,arm64,x86什麼的)!!

首先是安裝llvm,我使用的是ubuntu,所以選擇命令列下載,當然也可以在官網下載。

命令列下載主體:

svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

在tools資料夾中下載clang

cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang

其餘的選擇性下載,我覺得後續要用了再下就行

安裝(建議在前面加上sudo)

mkdir build
cmake -G "Unix Makefiles" -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_BUILD_TYPE=Release ../llvm
make
make install

這就完成了下載和安裝。

下面列一些常用命令

clang -emit-llvm -c hello.c -o hello.bc

lli hello.bc

llvm-dis hello.bc

llc hello.bc -o hello.s

我們主要看的就是llvm IR,也就是.ll檔案

補充一下交叉編譯的指令,使用clang時可以使用--target、--mcpu等引數

clang --target=arm-linux-gnueabihf test.c -o test

clang --target=armv7a-linux-gnueabihf -mcpu=cortex-a15 test.c -o test

targer選擇使用什麼編譯,而mcpu是為什麼cpu進行編譯