<div dir="ltr"><div>Hi,</div><div><br></div><div>I'm trying to write a LLVM backend for a custom CPU architecture. The architecture that I'm currently working on has no LOAD, STORE instructions or any register in it, it is working directly on memory. Simple use of an instruction as follows:</div><div><br></div><div>ADD A B</div><div><br></div><div>When you use an add operation with two operands which are A and B as above, it simply sums data on both memory block A and B then writes it into memory block B. So, you can do any operation without need of any register.</div><div><br></div><div>I need to discard LOAD and STORE operations from DAG. Becaues of every operation need to use memory block adresses as their operands, I cannot simply discard LOAD and STORE by legalize the SelectionDAG. Is there any way to define backend for an architecture without LOAD and STORE operations in LLVM?</div><div><br></div><div>Also, immediate operations have non-standard value (14-bit integer) as its immediate operand. Is there any simple way to use non-standard values?</div><div><br></div><div>Thanks in advance.</div></div>