我正在尝试使用Polygeist将C代码转换为MLIR格式。我在Windows 10上尝试了以下命令行(路径中已经添加了cgeist.exe)。输出文件只包含属性。
化学元素aes. c-S -o aes.scf.毫微度
输出文件:
module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"dlti.endianness", "little">, #dlti.dl_entry<i64, dense<64> : vector<2xi32>>, #dlti.dl_entry<f80, dense<128> : vector<2xi32>>, #dlti.dl_entry<i1, dense<8> : vector<2xi32>>, #dlti.dl_entry<i8, dense<8> : vector<2xi32>>, #dlti.dl_entry<i16, dense<16> : vector<2xi32>>, #dlti.dl_entry<i32, dense<32> : vector<2xi32>>, #dlti.dl_entry<f16, dense<16> : vector<2xi32>>, #dlti.dl_entry<f64, dense<64> : vector<2xi32>>, #dlti.dl_entry<f128, dense<128> : vector<2xi32>>>, llvm.data_layout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-pc-windows-msvc19.34.31933", "polygeist.target-cpu" = "x86-64", "polygeist.target-features" = "+cx8,+fxsr,+mmx,+sse,+sse2,+x87", "polygeist.tune-cpu" = "generic"} {
}
有什么我应该改变使它工作?也许有其他的C/C++前端支持MLIR可以利用?非常感谢您的任何答案提前:D
1条答案
按热度按时间cqoc49vn1#
Polygeist要求您指定要使用
--function=<string>
降低的C函数。如果未指定,MLIR模块将使用空主体生成。要降低输入代码中每个函数的值,请使用
--function=*
:此时,您已经使用定制打印机转储了一个MLIR代码。您可以通过将上面的输出传递给
polygeist-opt
来获得通用的MLIR格式:示例
假设我们有输入文件
sum.c
:运行
cgeist sum.c --function=sum -S
,我们得到:运行
cgeist sum.c --function=sum -S | polygeist-opt --mlir-print-op-generic
,我们得到: