LLVM 編譯器
LLVM 編譯器基礎設施專案是一套編譯器和工具鏈技術,可用於開發任何程式語言的前端和任何指令集體系結構的後端。LLVM 的設計圍繞著一種與語言無關的中間表示 (IR),它充當一種可移植的高階組合語言,可以透過多個遍上的各種轉換進行最佳化。
LLVM 包含一個元件列表
- Clang:C 語言家族的前端
- LLVM 編譯器/Clang 外掛 Clang 外掛使得在編譯期間執行額外的使用者定義操作成為可能。
- compiler-rt:包含內建函式、消毒器執行時、配置檔案和 Apple Blocks 執行時介面的執行時庫。
- test-suite:https://github.com/llvm/llvm-test-suite
在 OpenMP 支援 中瞭解更多
隨著 Clang 3.8.0 的釋出,OpenMP 3.1 支援在 Clang 中預設啟用,因此 OpenMP 執行時作為 Clang 構建的正常部分構建,並與二進位制發行版一起分發。因此,您無需顯式簽出此程式碼或在樹外構建它;正常的 Clang 簽出和構建將自動包括構建這些執行時庫。
cmake -G Ninja -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$LLVM_PATH -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;openmp" -DCLANG_BUILD_EXAMPLES=1 $LLVM_SRC/llvm
ninja install -j8 -l8
LLVM 的程式碼審查由 Phabricator 處理 https://reviews.llvm.org/。迴歸測試由 Buildbot 執行 http://lab.llvm.org:8011/,使用 https://github.com/llvm/llvm-test-suite 下的測試套件。
LLVM 使用 Buildbot 執行一些迴歸測試。
他們的網站具有 JSON API:http://lab.llvm.org:8011/json/help
以 OpenMP 測試的 API 結果為例
此獲取請求將獲取一個 json 檔案,其中包含每個步驟日誌的連結以及其他資訊。您可以檢查連結中的日誌檔案以檢視所使用的命令列。例如:以下是配置步驟的日誌檔案