LLVM:测试基础(一),llvm-lit、FileCheck

文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。

前期的 MLIR 系列文章中,没有介入测试工作。测试本身也是一个比较大的主题,这里希望用几篇文章讲明白如何利用 LLVM 的基础设施完成所编写代码的测试工作。

本文为第 1 期,将使用一个例子介绍如何使用 llvm-lit 和 FileCheck 这两个最常用的工具完成测试工作。

  • llvm-lit,LLVM Integrated Tester,通过 Python 语法编写配置文件,完成对某个项目的测试工作
  • FileCheck,一个比 grep 功能更多的文本查找与匹配验证工具,可以帮助程序员确认代码是否正确生成

这两个工具都可以通过 pip 安装,分别叫 litfilecheck如果使用了 pip 安装,下面的相关工具名请自行更改替换。

关于两个工具的更多使用细节请自行前往相关网站。

下面用一个小例子说明如何使用这两个工具,

Read more

C++:traits,分类型处理

文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。

traits 在 MLIR 体系中被大量使用。它的本意很晦涩,“萃取信息”,有点像是隐含的重要信息。

简单讲,C++ 中的 traits 概念指代一种编程方法,它抽象一种接口,使得这个接口针对不同类型的输入作分别处理

Read more

MLIR:新建一个Dialect(十),CMakeLists.txt

文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。

Multi-Level Intermediate Representation(MLIR)是创建可重用、可扩展编译器基础设施的新途径。本文为第 16 期,继续介绍 mlir-hello 是如何利用 cmake 来组织项目的。

转载请注明出处!

关于文件结构,在之前的文章MLIR:新建一个Dialect(一)已经介绍过了。

上一篇文章已经介绍了mlir-hello项目根目录下,也就是总的的工程配置部分,本质上也就是文件结构和 cmake 项目文件的编写。

本文继续讲下各个子目录的 CMakeLists.txt 文件。

Read more

MLIR:新建一个Dialect(九),CMakeLists.txt

文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。

Multi-Level Intermediate Representation(MLIR)是创建可重用、可扩展编译器基础设施的新途径。本文为第 15 期,介绍 mlir-hello 是如何利用 cmake 来组织项目的。

转载请注明出处!

关于如何编写新的 Dialect 的编码部分前期已经介绍完毕。

今天介绍一下mlir-hello项目的工程配置部分,本质上也就是文件结构和 cmake 项目文件的编写。

Read more