- 必须学习tablegen,一门新的语言。
- 自定义了许多trait和attribute,必须学习才能知道什么意思。
- tablegen生成一堆.inc代码,在build里,编译之前都看不到定义,还要包到.h文件中,从.cpp中根本看不出在哪里定义。
- 隐藏了遍历执行过程,不知道pattern会不会被误执行。
- 生成新的OP不管有多少参数都必须重新构造,不能方便地通过继承添加成员。
- 构造一个attr对象只能用get函数,传入所有的参数,没有拷贝构造和赋值运算符。
- .td文件负责定义,但vscode不能自动跳转。
- lit测试中attribute数组,不管有多大都要手写,没有指针的方式表达。
- 通过PassManager.run()运行,失败了也不知道失败在哪个pass中。需要知道许多后门环境变量, 只能dump令人眼花缭乱的IR,从海量数据中查找端倪,非常不适合debug。
- MLIR 中没有传统 OOP 的继承/多态,只能通过interface作为中介,无法直接继承。
mlir十宗罪
最新推荐文章于 2026-08-14 14:53:36 发布

193

被折叠的 条评论
为什么被折叠?



