This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, FT32] initial support
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: James Bowman <james dot bowman at ftdichip dot com>
- Cc: Jeff Law <law at redhat dot com>, Joseph Myers <joseph at codesourcery dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 12 May 2015 18:09:44 -0500
- Subject: Re: [PATCH, FT32] initial support
- Authentication-results: sourceware.org; auth=none
- References: <55511270 dot 70708 at redhat dot com> <CA9BBF0458F83C4F9051448B941B57D117B9A589 at glaexch3>
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