RFA: patch to fix PR59787 (arm target)

Yvan Roux yvan.roux@linaro.org
Tue Jan 14 19:14:00 GMT 2014


Thanks for the hint Vladimir, I'll pass some validation on arm.c and
arm.md/aarch64.md separately.

On 14 January 2014 20:09, Vladimir Makarov <vmakarov@redhat.com> wrote:
> On 01/14/2014 01:41 PM, Yvan Roux wrote:
>>> A quick grep of the arm backend shows 11 instances of reload_in_progress:
>>>
>>> arm.c:      && !(reload_in_progress || reload_completed)
>>> arm.c:  if (! (reload_in_progress || reload_completed)
>>> arm.c:  if (! (reload_in_progress || reload_completed)
>>> arm.c:  if (! (reload_in_progress || reload_completed)
>>> arm.c:                           reload_in_progress || reload_completed))
>>> arm.md:  "TARGET_32BIT && (reload_in_progress || reload_completed)"
>>> arm.md:  "TARGET_32BIT && (reload_in_progress || reload_completed)"
>>> arm.md:  "TARGET_32BIT && (reload_in_progress || reload_completed)"
>>> arm.md:  "TARGET_32BIT && (reload_in_progress || reload_completed)"
>>> predicates.md:        "offsettable_address_p (reload_completed |
>>> reload_in_progress,
>>> predicates.md:      (and (match_test "reload_in_progress ||
>>> reload_completed")
>>>
>>> and aarch64 has five more:
>>>
>>> aarch64.md:  "reload_completed || reload_in_progress"
>>> aarch64.md:  "reload_completed || reload_in_progress"
>>> aarch64.md:  "reload_completed || reload_in_progress"
>>> aarch64.md:  "reload_completed || reload_in_progress"
>>> aarch64.md:  "reload_completed || reload_in_progress"
>>>
>>> Yvan, could you do a quick audit on these to see if they are also likely
>>> to need fixing?
>> Yes, I'll check all of them.
> I checked these places too.  I'd do analogous change for only arm.c in
> thumb1_legitimate_address_p,  neon_vector_mem_operand, and
> neon_struct_mem_operand.   I guess it is a a bad idea to do it in
> predicates.md.  Changes arm.md and aarch64.md is worth to try but I
> believe LRA will work without the changes.



More information about the Gcc-patches mailing list