On 08/02/2016 04:41 PM, shmeel gutl wrote:
I am trying to enable lra for a propriety backend. I ran into one problem that I can't solve. In lra-constraints.c:split_reg lra_create_new_reg can be called with a hard code rclass of NO_REGS. It then queues a move instruction of the type

 set TYPE:new_reg  TYPE:old_reg

But the NO_REGS rclass stops new_reg from matching a register constraint and forces a reload. But the reload will have the same problem. This recurses until the recursion limit is hit.

What is my backend missing that will allow a register assignment to new_reg?
NO_REGS in this case means memory and the generated RTL move insn finally should be a target load or store insn. It is hard to say w/o looking at the code but, probably, your move insn descriptions do not have memory constraints (or these constraints are quite specific).

Reply via email to