本文探讨了MLIR(多级中间表示)在编译器工程中的重要性。传统的LLVM IR在处理AI编译器和领域专用架构时存在不足,无法满足不同抽象层级的需求。MLIR支持不同领域和抽象层级的共存,能够有效解决编译器碎片化的问题。未来的编译器设计需要一个能够容纳多种IR的框架,而MLIR正是这一方向的探索。
本文介绍了 MLIR 中的 IR 结构及其与 LLVM IR 的关键差异。MLIR 通过 Operation 进行遍历,每种操作都是独立类型,增强了类型安全性。文章详细阐述了 Operation、Value、Block 和 Region 的内存布局及其功能,并强调了 MLIR 的类型系统和属性设计。
本文介绍了如何从零构建一个微型Tensor DSL,定义了一个包含四个操作的tiny方言,并实现了从tiny到linalg的降阶过程。项目结构包括方言定义、操作实现和降阶Pass,最终生成LLVM IR并通过JIT执行,展示了完整的编译链。
本文探讨了利用AI学习编译原理,特别是LLVM IR的应用。作者创建了一种PoC编程语言,研究基于作用域的内存管理,避免了垃圾回收的开销。文章还涵盖了词法分析、类型检查和逃逸分析等核心逻辑,强调编程语言特性的实现层次,并分享了项目中的学习经验。
在GSoC 2025项目中,Pedro Lobo为LLVM IR引入了新的字节类型,解决了内存访问问题,改进了memcpy和memcmp等内置函数,提升了优化能力,且对性能影响极小。
这篇文章由C++开发者Brian Grenier撰写,探讨了Mojo编程语言的元编程能力,特别是其参数系统。文章介绍了如何通过泛型和别名简化函数定义,并展示了编译时计算和类型安全的优势。通过LLVM-IR示例,说明了Mojo在编译时优化代码以提升性能。
Wave v0.0.6-pre-beta发布,增强了类型系统和函数支持,新增continue语句和浮点运算。支持结构化WaveType枚举,函数返回类型完全支持,LLVM IR生成逻辑升级,确保安全准确。新增注释支持、格式化打印、强类型变量和参数等功能,提升了语言的表达能力和可重用性。
Andrew Kallai在GSoC 2024项目中对LLVM-IR编译进行统计分析,旨在优化编译管道中的时间分配。通过ComPile数据集识别异常IR模块,并新增工具将IR模块写入tar文件,便于分析。目前有三个PR待合并,未来计划包括优化tar文件创建、分析Julia IR及改进异常检测。感谢导师和LLVM基金会的支持。
GSoC 2024: 使用ClangIR编译GPU内核。ClangIR项目旨在将OpenCL C语言支持集成到ClangIR中,实现将GPU内核编译为针对SPIR-V架构的LLVM IR。该项目成功实现了地址空间支持、OpenCL语言和SPIR-V目标集成、向量类型支持、内核和模块元数据发射、支持带限定符的全局和静态变量、调整调用约定以及用户体验增强。未来的工作包括开发函数属性一致性和对OpenCL内置类型的支持。该项目的进展已经有详细记录,并且所有补丁已合并到主要的ClangIR代码库中。
完成下面两步后,将自动完成登录并继续当前操作。