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.