I am porting llvm backend to our own target backend, which is based on MIPS arch. But I come across a problem when I run “llc -march=(our processor name) sum.ll” at the DAGtoDAG stage:
”LLVM ERROR: can’t select i32=FrameIndex<0> [ID] = 3 “
— zyn
I am porting llvm backend to our own target backend, which is based on MIPS arch. But I come across a problem when I run “llc -march=(our processor name) sum.ll” at the DAGtoDAG stage:
”LLVM ERROR: can’t select i32=FrameIndex<0> [ID] = 3 “
— zyn
This means your backend does not natively support this SDNode. You have to use the DAG Legalizer to either promote, expand, or customize it.
See http://llvm.org/docs/CodeGenerator.html#selectiondag-legalizetypes-phase
Hope this helps,
Ziqiang
I am porting llvm backend to our own target backend, which is based on MIPS arch. But I come across a problem when I run “llc -march=(our processor name) sum.ll” at the DAGtoDAG stage:
”LLVM ERROR: can’t select i32=FrameIndex<0> [ID] = 3 “
Have you added any code to YourPortTargetLowering::LowerOperation() to
custom lower FrameIndex nodes?