llvm-project:基于编译器技术的基础设施项目

LLVM 项目是一个模块化、可复用的编译器及工具链技术的集合。此fork用于添加仓颉编译器的功能,并支持仓颉编译器项目。

分支61Tags365
文件最后提交记录最后更新时间
1 个月前
1 个月前
3 年前
3 年前
3 年前
3 年前
1 个月前
3 年前
3 年前
3 年前
3 年前
3 年前
3 年前
3 年前
8 天前
11 小时前
3 年前
1 天前
3 年前
3 年前
3 年前
4 年前
3 年前
4 年前
3 年前
5 年前
5 年前
5 年前
4 年前
3 年前
4 年前
4 年前
4 年前
10 个月前
4 年前
5 年前

LLVM 编译器基础设施

本目录及其子目录包含 LLVM 的源代码,这是一个用于构建高度优化的编译器、优化器和运行时环境的工具包。

本 README 简要介绍了如何开始构建 LLVM。如需了解如何为 LLVM 项目做出贡献,请参阅 LLVM 贡献指南

LLVM 系统入门

内容摘自 LLVM 入门指南

概述

欢迎来到 LLVM 项目!

LLVM 项目包含多个组件。其核心部分名为 "LLVM",包含了处理中间表示并将其转换为目标文件所需的所有工具、库和头文件。工具包括汇编器、反汇编器、位码分析器和位码优化器,还包含基本的回归测试套件。

类 C 语言使用 Clang 前端。该组件将 C、C++、Objective-C 和 Objective-C++ 代码编译为 LLVM 位码,再通过 LLVM 生成目标文件。

其他组件包括: libc++ C++ 标准库LLD 链接器 等。

获取源代码与构建 LLVM

LLVM 入门文档可能已过时。Clang 入门指南 可能包含更准确的信息。

以下是获取和构建 LLVM 源代码的示例工作流程:

  1. 检出 LLVM(包括相关子项目如 Clang):

    • git clone https://github.com/llvm/llvm-project.git
    • 或在 Windows 上:git clone --config core.autocrlf=false https://github.com/llvm/llvm-project.git
  2. 配置并构建 LLVM 和 Clang:

    • cd llvm-project

    • cmake -S llvm -B build -G <生成器> [选项]

      常用构建系统生成器包括:

      • Ninja --- 生成 Ninja 构建文件(多数 LLVM 开发者使用)
      • Unix Makefiles --- 生成兼容 make 的并行 Makefile
      • Visual Studio --- 生成 Visual Studio 项目和解决方案
      • Xcode --- 生成 Xcode 项目

      常用选项:

      • -DLLVM_ENABLE_PROJECTS='...'-DLLVM_ENABLE_RUNTIMES='...' --- 分号分隔的 LLVM 子项目和运行时列表,可选值包括 clang、libcxx 等
      • -DCMAKE_INSTALL_PREFIX=目录 --- 指定安装路径(默认 /usr/local
      • -DCMAKE_BUILD_TYPE=类型 --- 构建类型(Debug/Release/RelWithDebInfo/MinSizeRel)
      • -DLLVM_ENABLE_ASSERTIONS=On --- 启用断言检查
    • cmake --build build [-- [选项] <目标>] 或直接使用构建系统

      • 默认目标会构建全部 LLVM 组件
      • check-all 目标会运行回归测试
      • 可使用并行构建加速(Ninja 默认并行,make 使用 -j NNN 参数)

更多信息请参阅 CMake 指南

详细配置和编译说明请参考 LLVM 入门指南,源码目录结构请查看 目录布局说明

联系我们

加入 LLVM Discourse 论坛Discord 聊天OFTC 上的 #llvm IRC 频道。

LLVM 项目已采用 行为准则,适用于项目内所有沟通场景。

项目介绍

LLVM 项目是一个模块化、可复用的编译器及工具链技术的集合。此fork用于添加仓颉编译器的功能,并支持仓颉编译器项目。

定制我的领域