This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, FT32] initial support


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]