怎么将零件整合到一起_MLIR Dialect的零件生产者 -- TableGen

24ca9dfdde05527f33ca26d2798c0734.png
上一篇文章组建了MLIR的整个生产线,将MLIRGen模块看作是生产线的履带、将Dialect模块看作是生产线的机械臂、将TableGen模块看作是生产线的零件提供者。TableGen模块实际上是使用Operation Definition Specification (ODS)框架进行自动化生成代码,整个框架是基于TableGen规则来完成相应功能。

我们在组装完生产线之后发现,我们距离生产出MLIR只差“零件”了,那么“零件”从哪来呢?当然有一种方法就是手工打磨“零件”,也就是为每一个Dialect Operation手写类。但是这都2020年了,手工打磨的方式太过低效了,我们要使用自动化的“数控机床”--TableGen,定义一系列的TableGen规则,从而自动化地生产“零件”。

什么是TableGen

我们把TableGen看作是为Dialect提供零件的“数控机床”,那么它在MLIR体系中是如何发挥作用的呢?TableGen本身是一种声明性编程语言,在此处它用于描述MLIR中Operation的类的定义,在源代码中它以.td文件的形式存在,在编译时会自动生成C++的相应文件,给Dialect模块文件提供支持。

如果我们使用手动编写的方式,在针对不同编译目标时,我们需要在一系列不同文件中编写一些相同的代码,这就造成了冗余的开发。而使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值