收录了 llvm 频道下的 50 篇内容
下一代英特尔C/C++编译器的表现会更加出色,因为它们将使用LLVM开源基础架构。
在软件开发领域,我们看到一些新的开发语言和改进如雨后春笋般涌现。它们为开发人员在开发速度、安全性、便利性、可移植性和功能上提供了多种选择。这可部分归因于我们具备了构建语言尤其是编译器的新工具,其中首屈一指的就是LLVM。LLVM不仅简化了新语言的创建工作,而且提升了现有语言的发展。本文介绍了LLVM的功能和使用机制,并未来发展做了展望。
将代码移植到多核多处理器平台,实现并行化的过程中,LLVM这款广受欢迎的编译器有一些不够完善的地方。麻省理工学院开发Cilk的研究小组,对LLVM IR进行了大胆而极具洞察力的扩充,经过区区6千行修改,发布了LLVM/Tapir编译器,“能比其他商用或开源的编译器,更好地对并行代码优化,而且能编译有些编译器无法编译的内容”。
本文为《高德技术2019年刊合辑》系列之一。
LLD将被实验性地添加到LLVM 4 rc1中,并默认启用。LLD的目标在于重写ELF和COFF链接器以提供更高的性能。它已取得比GNU ld和gold linker更好的性能,并用在构建再用的FreeBSD/amd64基系统中。
llvmruby项目提供Ruby对 LLVM的绑定。Yarv2llvm项目通过llvmruby构建,用于将Ruby 1.9的操作码转换成LLVM的字节码,而后者可以通过LLVM的JIT功能向下编译成原生代码。另外:当前正在用C++重写的Rubinius虚拟机项目,也即将会用到LLVM。
LLVM团队昨日发布了LLVM 2.8,包括下一代C/C++编译器、优化器和运行时的低级虚拟机基础架构。VMKit使用LLVM来实现CLR和JVM的运行时,MacRuby和Python的Unladen Swallow也同样用到了LLVM。另外,最近发布的Mono 2.8包含了一个mono-llvm运行时。那么,LLVM 2.8都有哪些新特性?
High Performance Erlang(HiPE)是面向Erlang的一个高性能原生代码编译器,而ErLLVM项目就是为了给HiPE提供多后端支持而设计的。ErLLVM使用了LLVM基础架构。
通过将JavaScript转换成LLVM IR代码并在随后对其进行重量级优化,苹果将Safari JavaScript引擎Nitro的速度提升了35%。
多平台编译器项目LLVM最近发布了3.3版本,支持更多的硬件平台,编译器优化又有所改进,大多数用户都能因此受益。
LLVM团队宣布了LLVM的发布版本,其中包含了一些主要的弃用和新的C语言API头文件以及Clang3.8。
Rust 1.25把LLVM升级到LLVM 6,新增use语句嵌套导入组支持、自定义结构对齐、库稳定化。不过,最新的Rust版本没有包含许多期待已久的特性,如impl Trait、稳定的SIMD库支持、128位整数。
ACM已经颁发了2012年度的计算领域创新奖,其中的软件系统奖颁发给了LLVM的创建者。
LLVM现在可以生成PDB文件,这使得使用Windows调试工具成为可能。此外,LLVM团队还构建了PDB格式的文档,并创建了从YAML生成PDB的分析工具。
.NET 基金会宣布了名为LLILC(发音为“lilac”)的新项目的发布。该项目最初由微软贡献,致力于为.NET核心(Core)提供新的基于LLVM的原 生代码编译器,从而使“在任何CoreCLR能够移植的以及LLVM会支持的平台上”运行.NET程序成为可能。
麻省理工学院的研究人员过去一直致力于LLVM的fork的研究,以探索优化并行代码的新方式,该方式通过将 fork-join parallelism直接嵌入编译器的中间表示(IR)中进行优化。这些研究人员认为,这使针对并行程序最大程度地利用IR层进行串行优化成为可能。
通过支持运行LLVM位码(bitcode),Google增强了对Chrome中原生应用的支持。
本月初,Kevin Modzelewski在Dropbox技术博客上撰文宣布了他们正在开发的一款开源Python实现——Pyston。该项目的目标是开发出一款高性能的Python实现,使Python跻身如C++等传统系统级语言所统治的领域。
在今年11月的LLVM开发者大会上,来自Apple的Doug Gregor以“向C语言中加入模块机制”为主题做了一场讲座。讲座中提供了一种过渡性方法,即通过模块来加速编译过程并改进库所提供的语义信息,该方法可用于改进IDE和调试。
在一个试验性分支上,MacRuby下个版本的首个性能方面的改进已经完成。该版本引入了一个基于LLVM的全新VM,较之MacRuby早起的版本已经有了非常显著的速度提升。