RFA: patch to build GCC for arm with LRA

Yvan Roux yvan.roux@linaro.org
Fri Jul 5 12:43:00 GMT 2013


Hi,

for AArch64 it is also needed to take into account SIGN_EXTRACT in the
set_address_base and set_address_index routines, as we acan encounter
that kind of insn for instance :

(insn 29 27 5 7 (set (mem:SI (plus:DI (sign_extract:DI (mult:DI
(subreg:DI (reg/v:SI 76 [ elt ]) 0)
...

with the attached patch and the LRA enabled, compiler now bootstrap
but I've few regressions in the testsuite,
gcc.c/torture/execute/fp-cmp-4l.c for instance. I was looking at these
issues before submitting  a complete AArch64 LRA enabling patch, but
as you are speaking about that...

Valdimir, for the ARM target I already had the ASHIFTRT and LSHIFTRT
addition on my side, but still had an ICE during bootstrap with LRA
when compiling fixed-bit.c (the Max number of generated reload insns
we talk about already) is it working for you ?

Thanks,
Yvan

On 27 June 2013 19:21, Vladimir Makarov <vmakarov@redhat.com> wrote:
> On 06/27/2013 01:10 PM, Richard Earnshaw wrote:
>> On 27/06/13 17:59, Vladimir Makarov wrote:
>>> On 06/27/2013 12:50 PM, Richard Earnshaw wrote:
>>>> On 27/06/13 17:32, Vladimir Makarov wrote:
>>>>> On 06/27/2013 12:15 PM, Richard Sandiford wrote:
>>>>>> Vladimir Makarov <vmakarov@redhat.com> writes:
>>>>>>> Richard, is it ok to commit to the trunk?
>>>>>> Looks good to me, but I gave up the right to approve it.  I think you
>>>>>> need ROTATERT too though (see arm_legitimate_index_p).
>>>>>>
>>>>>> Also, sorry for the nitpick, but once the full condition overflows
>>>>>> one line,
>>>>>> I think each == test should be on its own line.
>>>>>>
>>>>>>
>>>>> Thanks for the comments.  Here is the new version of the patch:
>>>>>
>>>>> 2013-06-27  Vladimir Makarov  <vmakarov@redhat.com>
>>>>>
>>>>>           * rtlanal.c (must_be_index_p, set_address_index): Add
>>>>> ASHIFTRT,
>>>>>           LSHIFTRT, and ROTATERT.
>>>>>
>>>>
>>>> Although it's not needed for ARM, why would you leave out ROTATE?
>>>>
>>>> Hmm, on second thoughts ROTATERT immediate is always canonicalized to
>>>> ROTATE (Pmode-size - imm), so it might be needed on ARM too.
>>> Thanks, Richard.  I guess we can include ROTATE.  It definitely will not
>>> hurt but it might be useful for other targets too.
>>>
>>> So I added ROTATE to the patch and like to get approval for it too.
>>>
>>>
>>
>> Oh, and another thought, AArch64 will probably need ZERO_EXTEND and
>> SIGN_EXTEND as well.
>>
> It is already implemented as many targets use it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aarch64-lra.diff
Type: application/octet-stream
Size: 1059 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130705/ef9d3b9b/attachment.obj>


More information about the Gcc-patches mailing list