LLVM源碼

LLVM 源碼工程目錄介紹

llvm_examples_ - 使用 LLVM IR 和 JIT 的例子。
llvm_include_ - 導出的頭文件。
llvm_lib_ - 主要源文件都在這裏。
llvm_project_ - 創建自己基於 LLVM 的項目的目錄。
llvm_test_ - 基於 LLVM 的迴歸測試,健全檢察。
llvm_suite_ - 正確性,性能和基準測試套件。
llvm_tools_ - 基於 lib 構建的可以執行文件,用戶通過這些程序進行交互,-help 可以查看各個工具詳細使用。
llvm_utils_ - LLVM 源代碼的實用工具,比如,查找 LLC 和 LLI 生成代碼差異工具, Vim 或 Emacs 的語法高亮工具等。

lib 目錄介紹

llvm_lib_IR/ - 核心類比如 Instruction 和 BasicBlock。
llvm_lib_AsmParser/ - 彙編語言解析器。
llvm_lib_Bitcode/ - 讀取和寫入字節碼
llvm_lib_Analysis/ - 各種對程序的分析,比如 Call Graphs,Induction Variables,Natural Loop Identification 等等。
llvm_lib_Transforms/ - IR-to-IR 程序的變換。
llvm_lib_Target/ - 對像 X86 這樣機器的描述。
llvm_lib_CodeGen/ - 主要是代碼生成,指令選擇器,指令調度和寄存器分配。
llvm_lib_ExecutionEngine/ - 在解釋執行和JIT編譯場景能夠直接在運行時執行字節碼的庫。

工具鏈命令介紹
基本命令

llvm-as - 彙編器,將 .ll 彙編成字節碼。
llvm-dis - 反彙編器,將字節碼編成可讀的 .ll 文件。
opt - 字節碼優化器。
llc - 靜態編譯器,將字節碼編譯成彙編代碼。
lli - 直接執行 LLVM 字節碼。
llvm-link - 字節碼鏈接器,可以把多個字節碼文件鏈接成一個。
llvm-ar - 字節碼文件打包器。
llvm-lib - LLVM lib.exe 兼容庫工具。
llvm-nm - 列出字節碼和符號表。
llvm-config - 打印 LLVM 編譯選項。
llvm-diff - 對兩個進行比較。
llvm-cov - 輸出 coverage infomation。
llvm-profdata - Profile 數據工具。
llvm-stress - 生成隨機 .ll 文件。
llvm-symbolizer - 地址對應源碼位置,定位錯誤。
llvm-dwarfdump - 打印 DWARF。

調試工具

bugpoint - 自動測試案例工具
llvm-extract - 從一個 LLVM 的模塊裏提取一個函數。
llvm-bcanalyzer - LLVM 字節碼分析器。

開發工具

FileCheck - 靈活的模式匹配文件驗證器。
tblgen - C++ 代碼生成器。
lit - LLVM 集成測試器。
llvm-build - LLVM 構建工程時需要的工具。
llvm-readobj - LLVM Object 結構查看器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章