On Tue, May 12, 2015 at 10:17:01PM +0000, James Bowman wrote: > It seems that with whenever a function's frame is bigger than 512 bytes, > LRA loops. Likely this causes a problem because there is no actual > instruction for subtracting constants more than 512. However, there is a > "link" pattern that allows this. It is puzzling.
That "link" pattern does (minus (reg) (imm)) but that is not canonical RTL; it should be written (plus (reg) (-imm)) Compile with -da to get dump files, look at the .reload one (which is for LRA if that is enabled), stare long and hard. I recommend coffee. > Do you think it would be easier to make the submission as is, then debug > the LRA issues from that point? If so, I have attached the current patch set. You should add a -mlra option so other people can easily enable it, too; also handy later (when it defaults to on) when LRA blows up (you can workaround with -mno-lra then). Segher