On Tue, May 27, 2014 at 04:15:47PM +0100, Richard Earnshaw wrote: > On 27/05/14 15:08, Richard Sandiford wrote: > > Hmm, is this because of "insn_enabled"? If so, how did that work before > > the patch? LRA already assumed that the "enabled" attribute didn't depend > > on the operands. > > Huh! "enabled" can be applied to each alternative. Alternatives are > selected based on the operands. If LRA can't cope with that we have a > serious problem. In fact, a pattern that matches but has no enabled > alternatives is meaningless and guaranteed to cause problems during > register allocation.
This is not LRA fault, but the backend misusing the "enabled" attribute for something it wasn't designed for, and IMHO against the documentation of the attribute too. Just look at the original submission why it has been added. Jakub