LLVM 學習笔记
看到以前的一篇日期是2020年,一些情感如鯁在喉。好久沒有寫筆記了,接下來準備重啓筆記計劃,可能也會偷偷發發論文筆記
LLVM 學習
LLVM 版本
commit ea42c4ac6a24c28fc12d5373a851ff376ea452cf (HEAD -> main)
Author: Paul Walker <paul.walker@arm.com>
Date: Fri Sep 8 16:14:58 2023 +0000
[SVE] Precommit test to show missing initialisation of call operand.
When calling func_f8_and_v0_passed_via_memory the memory used to
hold the first vector operand is allocated but not initialised.
LLVM 源碼結構
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.TXT
├── README.md
├── SECURITY.md
├── bolt
├── build
├── build-llvm
├── clang
├── clang-tools-extra
├── cmake
├── compiler-rt
├── cross-project-tests
├── flang
├── install
├── libc
├── libclc
├── libcxx
├── libcxxabi
├── libunwind
├── lld
├── lldb
├── llvm
├── llvm-libgcc
├── mlir
├── openmp
├── polly
├── pstl
├── runtimes
├── third-party
└── utils
部分源代碼結構
- bolt:Meta developed a
post-link optimizer
withfeedback-driven optimizations (FDO)
andlink-time optimizations (LTO)
。通俗的說就是把編譯後的信息用於編譯期。關於這個 Meta 發表了相關文章 - clang-tools-extra:内容和目錄的名字一樣,可惜我只認得
clangd
,clangd
是language server
,它提供了 IDE 的一些功能比如交叉索引等等,讓 vscode 更適合閲讀某些源代碼 - clang:適用於 C 家族的編譯器前端
- compiler-rt:提供了語言獨立的庫,如 fuzz 庫
- libc,libclc,libcxx,libcxxabi:提供了一些庫給 C,C++等語言
- libunwind:提供了棧展開,可以用於異常處理
- lld:LLVM linker
- lldb:LLVM debugger
- mlir:用於拓展 LLVM IR 在編譯時丟失信息的問題,這麽看來和 bolt 有一定的相似性。
- polly:Polly is a high-level loop and data-locality optimizer and optimization infrastructure for LLVM https://polly.llvm.org/
參考資料
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 R0gerThat!
评论