LLVM IR新增字节类型:原生支持内存操作

2025-09-09

LLVM 编译器基础设施的 Google Summer of Code 2025 项目成功在 LLVM IR 中添加了一种新的字节类型,用于表示原始内存值。此改进原生支持memcpy、memmove 和 memcmp 等内存相关内联函数,修复了现有的不安全转换,并支持新的优化,且性能影响极小。该项目解决了 LLVM 长期以来缺乏表示原始内存值的类型的问题,通过跟踪指针来源和精确表示毒化位,提升了编译器的准确性和优化能力。这项工作还改进了 Clang 对 C 和 C++ 原始内存访问类型的处理,并修复了许多现有的不安全优化。

阅读更多
开发

LLVM Fortran 编译器 Flang:十年磨一剑,正式发布

2025-03-12

历经近十年发展,LLVM Fortran 编译器 Flang 终于从 “flang-new” 正式更名为 “flang”。这篇文章回顾了 Flang 的发展历程,从最初由美国国家实验室和 NVIDIA 合作开发,到采用 LLVM 的多级中间表示 (MLIR) ,最终成为 LLVM 项目的一部分。Flang 的出现是为了提供一个长期、非专有的 Fortran 编译器,降低单一编译器带来的风险,并促进 Fortran 社区的蓬勃发展。Flang 的旅程也见证了编译器技术的进步,例如采用 MLIR 优化 Fortran 代码。如今,Flang 已成熟稳定,并得到 AMD 等厂商的支持,成为 Fortran 开发者的有力工具。

阅读更多
开发

极简Ruby编译器Lightstorm:性能提升与MLIR的巧妙运用

2024-12-31

DragonRuby团队开发了一款名为Lightstorm的极简Ruby编译器,旨在提升其跨平台游戏引擎的性能。该编译器利用MLIR将mruby虚拟机的字节码转换为C代码,通过消除虚拟机解释循环中的加载/存储和分支操作来提升效率。测试结果显示,该编译器在某些基准测试中实现了1%到1200%的性能提升,平均降低了约30%的执行时间和循环次数。虽然目前只支持Ruby语言的子集,但该项目验证了预编译Ruby代码以提高性能的可行性,未来团队计划将引擎中关键的C代码部分替换为编译后的Ruby代码。

阅读更多
开发 Ruby编译器