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 <vmaka...@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.