The following patch fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59787
The problem of LRA looping was in that address with soft frame pointer was rejected as valid constraint in iwmmxt_amd_movdi insn. Ok to commit? 2014-01-14 Vladimir Makarov <vmaka...@redhat.com> PR target/59787 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
Index: config/arm/arm.c =================================================================== --- config/arm/arm.c (revision 206579) +++ config/arm/arm.c (working copy) @@ -12439,7 +12439,7 @@ arm_coproc_mem_operand (rtx op, bool wb) rtx ind; /* Reject eliminable registers. */ - if (! (reload_in_progress || reload_completed) + if (! (reload_in_progress || reload_completed || lra_in_progress) && ( reg_mentioned_p (frame_pointer_rtx, op) || reg_mentioned_p (arg_pointer_rtx, op) || reg_mentioned_p (virtual_incoming_args_rtx, op)