2016-11-17 105 views
1

我嘗試做出LLVM後端,我不知道我需要什麼來解決這個錯誤我需要什麼llvm存儲指令模式?

LLVM ERROR: Cannot select: t5: ch = store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i64<0>, undef:i64 

這是IR IM嘗試處理

define i32 @main() #0 { 
%retval = alloca i32, align 4 
store i32 0, i32* %retval, align 4 
ret i32 0 
} 

,但我不知道是什麼DAG我需要能夠匹配它的模式。

包含一些我拱支持的指令tablegen文件是在這裏https://github.com/jfmherokiller/customllvm/blob/master/llvm/lib/Target/ZCPU/zcpuInstr.td

回答

1

我想通了,我一直在尋找這個問題錯了問題

store<ST4[%retval]> t0, Constant:i32<0>, FrameIndex:i64<0>, undef:i64 

在功能形式expessed爲store(Constant:i32<0>,FrameIndex:i64<0>)或存儲常量i32 0在 堆棧幀索引0.

我沒有得到的信息是,FrameIndex:i64<0>直接關係到這條線in TargetSelectionDAG.td def frameindex :SDNode<"ISD::FrameIndex",SDTPtrLeaf, [],"FrameIndexSDNode">;

so FrameIndex = frameindex

相關問題