LLVM 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
LLVM 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
LLVM 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 UIUC/MIT
开发语言 C/C++ 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具编译器
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-11-02

软件简介

LLVM 是 Low Level Virtual Machine (低级虚拟机)的简称,这个库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。LLVM的项目是一个模块化和可重复使用的编译器和工具技术的集合。LLVM是伊利诺伊大学的一个研究项目,提供一个现代化的,基于SSA的编译策略能够同时支持静态和动态的任意编程语言的编译目标。自那时以来,已经成长为LLVM的主干项目,由不同的子项目组成,其中许多正在生产中使用的各种商业和开源的项目,以及被广泛用于学术研究。

LLVM 是 Illinois 大学发起的一个开源项目,和之前为大家所熟知的JVM 以及 .net Runtime这样的虚拟机不同,这个虚拟系统提供了一套中立的中间代码和编译基础设施,并围绕这些设施提供了一套全新的编译策略(使得优化能够在编译、连接、运行环境执行过程中,以及安装之后以有效的方式进行)和其他一些非常有意思的功能。

对于普通的开发人员来说,LLVM计划提供了越来越多的可以使用、编译器以外的其他工具。例如代码静态检查工具 LLVM/Clang Static Analyzer,是一个 Clang 的子项目,能够使用同样的 Makefile 生成 HTML 格式的分析报告

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(16) 发布并加入讨论🔥
发表了资讯
2023/07/30 11:29

LLVM 17.0 发布首个 RC

LLVM 17.0 首个 RC 已发布。 LLVM 17 主要变化: 支持新的英特尔 ISA 扩展 初步支持英伟达 CUDA Fortran 支持 RISC-V 向量加密扩展 ISA 经过调整的 AMD Zen 4 调度器模型 公开 -std=c++23 而不是仅限于 -std=c++2b 形式 新增 AMDGPU 后端以及其他各种改进 与 LLVM 16 相比,LLVM 17 至今已提交了近 38,000 次 commit 此外,Clang 17 还改进了 -O0 代码生成,连接了更多的 C++20 和 C++23 功能,提供了一些早期的 C++2C 支持并引...

0
1
发表了资讯
2023/07/03 12:25

LLVM 初步支持 Fat LTO 对象

LLVM Git 仓库的代码提交记录显示,它已初步支持 Fat LTO 对象。预计今年秋季的 LLVM/Clang 17 将提供"-ffat-lto-objects"支持。 据介绍,为编译器启用 Fat LTO 对象支持可以让编译器 IR 与最终目标代码一起保存。因此,这些 "fat" 对象可以用于开发构建和优化构建的生产,但代价是增加了对象大小和更长的构建时间。然后在链接时间阶段确定是否丢弃 link-time 优化 (LTO) 信息,或者是否使用它。 GCC 支持 Fat LTO 对象已经有一...

1
0
发表了资讯
2023/06/16 10:45

LLVM 17 支持 Arm Neoverse-V2 调度模型,提升 AArch64 二进制文件性能

LLVM/Clang 17 是一个开源的编译器套件,它可以为多种平台和架构生成优化的代码。最近,LLVM 17 在 Git 仓库中添加了一个重要的特性:针对 Arm Neoverse-V2 处理器核心的调度模型。 Arm Neoverse-V2 是 Arm 公司推出的一款面向服务器市场的高性能处理器,旨在提供最佳的性能和成本效益。Arm 公司去年宣布了 Neoverse-V2 的计划,并且在开源编译器和其他组件中开始提交相关的补丁,为未来基于 Neoverse-V2 平台的服务器硬件做好准...

0
0
发表了资讯
2023/04/07 07:12

LLVM 16.0.1 已发布

LLVM 16.0.1 已发布,此版本是 LLVM 16 大版本的修复版本,处理了一些版本早期的 Bug,并提供了一些新的功能。 LLVM 16 采用了新的发布时间表,每 2 周发布一个新的错误修复版本 (14.0.x)。14.0.5 是计划中的最后一个版本,但如果在 14.0.5 中发现严重问题,可能会发布 14.0.6。 LLVM 16.0.1 提供了一些新特性,比如支持 RISC-V 上的模拟 TLS,支持 AVX 中 BF16 的加载/存储,以及其他随机修复: [AArch64] 修复 COFF 的折叠地址...

0
0
发表了资讯
2023/03/20 10:29

LLVM 正式支持 LoongArch 架构

LLVM于2023年3月18日发布了16.0.0版本,以正式后端(official target)的级别实现了对LoongArch指令集架构的完善支持。 至此,开源软件世界最重要的五大基础软件(BIG FIVE),即Linux内核、GCC、LLVM、Glibc、Binutils,都已发布了支持LoongArch架构的版本。 相关阅读 Linux 5.19 已合并龙芯 LoongArch CPU 架构 GCC 编译器接受龙芯 LoongArch CPU GNU libc (Glibc) 2.36 发布,支持 LoongArch 架构 .NET 正式支持龙芯 LoongA...

8
2
发表了资讯
2023/03/19 07:57

LLVM 16.0 发布,默认标准改为 GNU++17

LLVM 16 已正式发布。LLVM 16.0 中添加了许多令人兴奋的功能,包括更快的 LLD 链接、Zstd 压缩的调试部分、稳定其 LoongArch 支持、默认为 Clang 的 C++17 等等。 下面是 LLVM 16 的主要变化: Clang 的默认 C++ 标准现在是 GNU++17,而不是 GNU++14/C++14 实现更多 C++20 功能,以及对现有 C++20 功能的错误修复,并为 C++2b 功能做一些准备 实现了更多 C2X 功能 各种 Clang 16 编译器诊断改进 与 LLVM 15 相比,LLVM 16 的 LL...

11
1
发表了资讯
2023/02/14 08:41

Arm 介绍 LLVM Fortran 编译器 Flang 的最新进展

Arm 工程师 Kiran Chandramohan 在近期举办的 FOSDEM 会议上,介绍了围绕 LLVM Fortran 编译器选项工作的最新进展。 近些年来,许多利益相关者都在积极推动着 Flang 作为 LLVM 编译器堆栈的 Fortran 语言前端,其中 Arm 公司就是主要推动力之一。根据介绍,虽然还没有准备好正式发布,但 Flang 已经取得了一些重大进展。 幻灯片内容指出,Flang 目前的状态包括(* 表示目前还在讨论中): 尚未准备好普遍可用 Driver 被暂时称为...

10
1
发表了资讯
2022/09/22 07:05

LLVM 15.0.1 发布

LLVM 15.0.1 发布了,此版本包含 LLVM 15.0 的第一批修复。 LLVM 15.0 引入了许多安全缓解措施,同时正在为最新规范开发新的 C 和 C++ 功能,其他更改包括: 实验性 Microsoft HLSL / DirectX 支持, RISC-V 更新, 更多 OpenMP 5.1 功能, 用于 debuginfod 的 HTTP 服务器, 初始 SPIR-V 返回-end 集成、 AMDGPU GFX11 工作 许多随机修复, clang 格式、测试问题和其他更改。 其他各种新编译器功能。 LLVM 15.0.1 有 32 处更改...

1
0
发表了资讯
2022/09/08 08:59

LLVM 16 默认标准从 C++14 转为 C++17

2017 年 12 月,一则提议将 LLVM/Clang 的 C++ 默认方言(default dialect)从 GNU++98 切换到 GNU++14 ,一直持续到前几天的 LLVM/Clang 15 版本。而 GCC 在 GCC 11 版本就已将默认标准设为 GNU++ 17 。 GNU++ 即带有 GNU 扩展的 C++ 语言,GNU 扩展特性可参考 GNU extensions to the C and C++ languages 在 LLVM 15.0 发布后,LLVM/Clang 16.0 版本即将迎来一个重大变化: GNU++17 将成为 LLVM 默认的 C++ 和 ObjectiveC++ 版...

3
3
发表了资讯
2022/09/07 09:01

LLVM 15.0 发布

LLVM 15 现已正式发布,带来了许多 x86 相关的安全特性、对 Armv9 的支持、来自微软的实验性 HLSL 和 DirectX 支持,以及支持更多的 RISC-V 指令等功能。 LLVM 15.0 的变化包括: 支持 Armv9-A、Armv9.1-A 和 Armv9.2-A 架构。还增加了对 Arm Cortex-M85 CPU 的支持 实验性的 DirectX 后端,DirectX 后端针对 DXIL 架构,用于 DirectX GPU 着色器程序 支持 AMD Zen 2 和更新的 CPU 上的 RDPRU 指令 一个用于 Debuginfod 的 HTTP...

7
3
发表了资讯
2022/08/01 07:19

LLVM 15.0 RC1 发布,正式版 9 月推出

LLVM 15 发布了首个 RC 版本。按照计划,RC 阶段总共会发布 3 个版本,一直持续到 8 月底,然后在 9 月中旬推出正式版。目前正式版暂定的发布日期是 9 月 6 日,不过具体情况会根据 bug 修复和其他因素而改变。 LLVM 15 主要变化: 为 Debuginfod 添加 HTTP 服务器 完成初始的 SPIR-V 后端代码 索尼开始向上游贡献 PlayStation 5 编译器 target 完成初始 DirectX/HLSL target 代码 完成初始 LoongArch CPU 架构代码 LLVM/Clang...

0
1
发表了资讯
2022/07/31 08:49

LLVM 16 默认为 RISC-V 启用可伸缩矢量

随着 LLVM 16 的公开,下一个编译器发布周期的早期变化之一是默认为 RISC-V 启用可伸缩矢量 (Scalable Vectorization),并支持 RISC-V 矢量指令的 target。 LLVM 开发者 Philip Reames 已默认为支持 Zve 或 V 扩展的 RISC-V target 启用了可伸缩矢量。他对这一变化进行了解释: 当矢量指令可用于 target 配置时,此更改为 RISCV 启用矢量化(仅使用可伸缩矢量,尚未启用固定矢量)。 在这一点上,生成的配置应该是稳定的(例如没...

0
2
发表了资讯
2022/07/13 07:54

LLVM 为 Debuginfod 添加了一个 HTTP 服务器

与 GNU Binutils 2.34 添加可选的 HTTP 服务器类似,LLVM 15 正在为 debuginfod 添加一个基本的 Web 服务器。开发团队在过去的一周里合并了一个用于 LLVM 的最小 HTTP 服务器;围绕 cpp-httplib,一个 C++ header-only HTTP/HTTPS 服务器和客户端库。 根据介绍,在上述两种情况下,此 HTTP 服务器仅用于向客户端分发 ELF/DWARF 调试信息和源代码。开发人员客户端可以查询 Web 服务器以获取在给定系统上本地未找到的调试文件。 ...

2
1
发表了资讯
2022/06/26 08:37

开发者提议将 Zstd 作为 LLVM 的第二种压缩方法

LLVM 项目目前支持 zlib 作为压缩算法,它的使用范围包括从压缩 ELF 调试部分,到序列化性能统计和 AST 数据结构。但 LLVM 的开发者 Cole Kissane 正在关注 Zstd 作为 zlib 的辅助压缩方法的使用,并编写了概念验证代码;用户可以在两种压缩方法之间进行二选一。Zstd 的压缩率与 DEFLATE 相似,但其更快的解压速度使它对许多软件项目具有更大的吸引力;目前已经得到了广泛地采用。 “我们想增加 Zstandard(又名 Zstd)作为 zl...

0
1
发表了资讯
2022/03/30 08:28

微软将基础 DirectX/HLSL 代码添加至 LLVM

3月上旬我们报道了微软希望向上游 LLVM/Clang 编译器添加 DirectX + HLSL 支持 。而从本周开始,微软图形处理工作的早期代码开始登陆 LLVM 15.0。 微软的开源 DirectX 着色器编译器“DXC”基于旧的 LLVM/Clang 3.7 分支,现在正致力于开发一种现代 DirectX 着色器编译器,该编译器将成为 LLVM 的上游,然后还可以享受更新的 C++ 功能、LLVM 工具改进等。 LLVM 项目中新增了添加 clang DirectX 目标支持、HLSL 语言选项和预处理器...

2
6
发表了资讯
2022/03/11 07:56

微软希望向上游 LLVM/Clang 编译器添加 DirectX + HLSL 支持

微软方面提出了一项提案,希望为上游 LLVM/Clang 编译器贡献 HLSL、DirectX 和 Vulkan 图形支持。 原因在于,其现有的 HLSL 编译器 DirectX Shader Compiler (DXC) 基于旧的 LLVM/Clang 3.7 分支。而微软计划将其编译器更新到最新的 LLVM,以便为 HLSL 带来新的 C++ 语言功能和工具改进。微软于 2017 年宣布了开源 DirectX 着色器编译器。 “虽然我们可以在自己的分叉中做到这一点,但我们相信将我们的编译器和社区与 LLVM 社区...

10
0
发表了资讯
2022/02/11 08:59

LLVM 开始支持 LoongArch CPU

LLVM 15.0 开发树已出现支持 LoongArch CPU 架构的初始补丁。 LoongArch 是龙芯打造的自主指令系统架构,LoongArch 包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近 2000 条指令。龙芯架构不包含MIPS指令系统。Loongson 3 5000 系列是第一款支持此 ISA 的硬件。 虽然开源 LLVM 编译器堆栈已提供初步的 LoongArch ISA 支持,补丁也已被合并,但对龙芯开发团队而言,还有许多工作需要完成,以改进 LoongArch 的编译...

12
3
发表了资讯
2022/01/25 08:20

LLVM Clang 默认使用 DWARFv5 调试格式

在 GCC 之后,LLVM Clang C/C++ 编译器前端现在默认使用 DWARFv5 调试数据格式。 DWARF 是一种用于 C/C++ 的调试数据格式,DWARF v5 于 2017 年发布,与十年前的 DWARF v4 相比,它提供了更快的符号搜索、更好的优化代码调试、改进过的数据压缩、改进了代码的某些元素的描述、新的语言代码以及其他改进。 GCC 从 v11 以来就默认使用 DWARFv5 调试格式,而 LLVM 的 Clang 前端也将使用 DWARFv5 作为其默认设置,此更改将在 LLVM...

0
2
发表了资讯
2022/01/14 08:26

BOLT 合并到 LLVM,优化二进制文件以提高性能

Facebook 开发的工具 BOLT 现已被合并到 LLVM 的 mono 仓库,共包含 89.5k 行新代码;作为 LLVM 的上游,以促进其未来发展。 作为积极贡献 Linux 内核的厂商,Facebook 的工程师近年来一直在研究 BOLT(可以追溯到 2018 年),致力于通过优化 GCC 和 Clang 生成的二进制文件的代码布局来加快 Linux 二进制文件的速度,以提高 CPU 缓存使用率和其他考虑因素。BOLT 使用了几个 LLVM 库,但在过去的几年里一直在树外开发。 BOLT 即...

1
4
发表了资讯
2021/12/25 09:07

LLVM Clang 初步支持 SPIR-V 工具链

作为对即将成为主线的 LLVM SPIR-V 后端工作的补充,Clang 现已合并初步的 SPIR-V 工具链支持。此功能用于从 Clang 转换为符合 OpenCL 环境规范的 SPIR-V 中间表示 (Intermediate Representation) —— 例如将 OpenCL 内核编译为 SPIR-V。 在尚未合并 LLVM SPIR-V 后端的情况下,Clang SPIR-V 工具链依赖于外部 LLVM 到 SPIR-V 转换器 (llvm-spirv) 完成转换过程。一旦这个大的 SPIR-V 后端被合并,并保持良好状态,它就可以过渡...

0
5
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
16 评论
251 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部