20200405
Plan
- MLIR中的术语表
- MLIRContextImpl 数据结构
- mlir 中的 module 数据结构
Notes
术语表
Block
一系列没有control flow的operations
Operation
MLIR中的一个代码集合。Operation是MLIR表示的一系列代码和计算行为。完全可扩展,并且根据具体业务不同有不同的语意。一个opration可以有0个或者多个regions。这就是一种递归定义了,因为region由block构成,而block又由operations构成。在MLIR中,与operations有关的主类有:Operation和Op。Operation是一个opration的序列。Op则是Operation衍生类的基类,例如ConstantOp,是一个Operation*的智能指针封装。
Region
一个MLIR blocks的控制流图(Control-flow graph)。
Conversion
MLIR 的 dialect 之间的转换
Dialect
用于扩展MLIR的一系列functionality。一个 dialect 创建了一个单独的 namespace,其中包含 operations,attributes 以及 types。这是扩充mlir的基础方法。在这种编程框架中,MLIR 本身可以被称为 meta-IR。
DDR
Declarative Rewrite Rule:一个rewrite rule可以被直接声明式的定义。在编译器,被翻译为 mlir::RewritePattern 的自类。
Export
将 MLIR 表示的代码转化为 MLIR 以外的表示。做这种转换的工具叫做 exporter。