LLVM學習日誌1 ——LLVM的下載與安裝
阿新 • • 發佈:2019-02-08
不得不寫一個系列,因為手中的工作要圍繞著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進行編譯