Brian G. Lucas via llvm-dev
2019-Dec-02 19:50 UTC
[llvm-dev] what does this error message mean?
When I building when using a Debug version, I get this error message: Type set is empty for each HW mode: possible type contradiction in the pattern below (use -print-records with llvm-tblgen to see all expanded records). ADJCALLSTACKDOWN: (callseq_start (timm:{ *:[] }):$amt1, (timm:{ *:[i64}):$amt2) UNREACHABLE executed at /home/bgl/src/llvm-local/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:821! The input InstrInfo.td has: def callseq_start : SDNode<"ISD::CALLSEQ_START", SDCallSeqStart<[ SDTCisVT<0, i32>, SDTCisVT<1, i32> ]>, [SDNPHasChain, SDNPOutGlue]>; def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), "# ADJCALLSTACKDOWN $amt1, $amt2", [(callseq_start timm:$amt1, timm:$amt2)]>; This is pretty much cut/paste from AArch64. The target arch is 64-bit. Thanks, brian
Krzysztof Parzyszek via llvm-dev
2019-Dec-02 20:34 UTC
[llvm-dev] what does this error message mean?
It means that the types that were provided for this instruction in the program couldn't be reconciled with the types expected for this instruction. If a target uses multiple HW modes, then it's ok if for any given mode the types contradict---that will simply disable that instruction for that mode, but if this happens in every mode, then it's treated as an error. In this particular case, it seems like the instruction expects i32, but somehow it's getting i64 (the second immediate operand is showing i64, so I'm guessing the first one for i64 as well). -- Krzysztof Parzyszek kparzysz at quicinc.com AI tools development> -----Original Message----- > From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Brian G. Lucas > via llvm-dev > Sent: Monday, December 2, 2019 1:50 PM > To: llvm-dev <llvm-dev at lists.llvm.org> > Subject: [EXT] [llvm-dev] what does this error message mean? > > When I building when using a Debug version, I get this error message: > > Type set is empty for each HW mode: > possible type contradiction in the pattern below (use -print-records with > llvm-tblgen to see all expanded records). > ADJCALLSTACKDOWN: (callseq_start (timm:{ *:[] }):$amt1, (timm:{ > *:[i64}):$amt2) UNREACHABLE executed at /home/bgl/src/llvm- > local/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:821! > > The input InstrInfo.td has: > > def callseq_start : SDNode<"ISD::CALLSEQ_START", > SDCallSeqStart<[ SDTCisVT<0, i32>, > SDTCisVT<1, i32> ]>, > [SDNPHasChain, SDNPOutGlue]>; > > def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), > "# ADJCALLSTACKDOWN $amt1, $amt2", > [(callseq_start timm:$amt1, timm:$amt2)]>; > > This is pretty much cut/paste from AArch64. The target arch is 64-bit. > > Thanks, brian > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev