我试图制作一个llvm后端,我不知道我需要修复这个错误
define i32 @main() #0 {
%retval = alloca i32, align 4
store i32 0, i32* %retval, align 4
ret i32 0
}
这是我试图处理的问题
{{1}}
但我不知道我需要能够匹配它的dag模式。
包含我的arch支持的一些说明的tablegen文件在https://github.com/jfmherokiller/customllvm/blob/master/llvm/lib/Target/ZCPU/zcpuInstr.td
答案 0 :(得分:1)
我刚刚弄清楚我正在查看错误的问题
store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i64<0>, undef:i64
可以以函数形式表示为store(Constant:i32<0>,FrameIndex:i64<0>)
或存储常量i32 0 in
堆栈帧索引0。
我没有得到的信息是FrameIndex:i64<0>
与TargetSelectionDAG.td中的这一行直接相关def frameindex :SDNode<"ISD::FrameIndex",SDTPtrLeaf, [],"FrameIndexSDNode">;
所以FrameIndex = frameindex