
044、Dialect Conversion Infrastructure:TypeConverter与Pattern昨晚调一个MLIR的lowering pass到凌晨三点,问题出在类型转换上。一个tensor*xf32死活转不过去,TypeConverter报了个“unexpected type”就罢工了。翻遍LLVM的邮件列表,发现两年前就有人踩过这个坑——官方文档里轻描淡写的一句“TypeConverter handles type mapping”,实际用起来全是细节。从一次失败的lowering说起场景是这样的:我们自定义了一个MyDialect,里面有个my.addop,操作数类型是my.tensor。目标是把my.tensorlower到标准的tensor类型。Pattern写好了,Rewriter也配了,跑起来直接崩——TypeConverter根本没被调用。问题出在哪?看这段代码:// 别这样写!我当时就这么写的,debug了一整晚class