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 文件,其中包含每个步骤日志的链接以及其他信息。您可以检查链接中的日志文件以查看所使用的命令行。例如:以下是配置步骤的日志文件