Hi, Could someone help me with the error described bellow? Thanks again, -- Hi everyone, I am working on a new backend and I am having an odd problem with the CodeGenEmitter (trying to create GenCodeEmitter.inc) when defining the "return" instruction of this architecture. I have followed other backends, however, that did not solve it. The "Return" instruction is defined as follows. def Ret : SDNode<"ArchISD::RET", SDTNone, [SDNPHasChain, SDNPOptInGlue, SDNPVariadic]>; class ReturnInstr<string OpcStr, bits<8> OpVal, InstrItinClass Itin> : InstArch<(outs), (ins), OpcStr, [(Ret)], Itin>{ let isReturn = 1; } def RET : ReturnInstr<"return", 0b00100110, IIAlu>; And the error is the following. *Assertion failed: (i < OperandList.size() && "Invalid flat operand #"), function getSubOperandNumber, file llvm/utils/TableGen/CodeGenInstruction.h, line 186.* The odd thing is: this is similar to other architectures. It looks like I cannot make an instruction to be *SDTNone (no Ins)*, since it worked when I changed this instruction by adding an Input DAG in it (that is not what I want, though). Any thoughts? Am I missing something? Thanks, Tiago -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150508/6ebebdb1/attachment.html>