ia64/ia64.c (ia64_reorg): Ignore prologue_use insns too. Index: gcc/config/ia64/ia64.c =================================================================== --- gcc/config/ia64/ia64.c.orig 2009-11-20 13:05:21.000000000 +0100 +++ gcc/config/ia64/ia64.c 2009-11-20 13:06:08.000000000 +0100 @@ -7179,11 +7179,15 @@ ia64_reorg (insns) insn = get_last_insn (); if (! INSN_P (insn)) insn = prev_active_insn (insn); - if (GET_CODE (insn) == INSN - && GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE - && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER) - { - saw_stop = 1; + while (GET_CODE (insn) == INSN + && ((GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE + && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER) + || (GET_CODE (PATTERN (insn)) == UNSPEC + && XINT (PATTERN (insn), 1) == UNSPEC_PROLOGUE_USE))) + { + if (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE + && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER) + saw_stop = 1; insn = prev_active_insn (insn); } if (GET_CODE (insn) == CALL_INSN)