The following patch fixes a compiler crash on s390 during the
bootstrap. Unfortunately it is not enough to fix the current s390
bootstrap failure.
The patch was successfully bootstrapped on x86/x86-64.
Committed as rev. 184524.
2012-02-23 Vladimir Makarov <vmaka...@redhat.com>
* lra-constraints.c (inherit_in_ebb): Don't do inheritance from
output of a jump.
Index: lra-constraints.c
===================================================================
--- lra-constraints.c (revision 184510)
+++ lra-constraints.c (working copy)
@@ -4363,8 +4363,9 @@ inherit_in_ebb (rtx head, rtx tail)
{
reloads_num++;
/* 'original_pseudo <- reload_pseudo'. */
- if (inherit_reload_reg (true, false, dst_regno, cl,
- curr_insn, next_usage_insns))
+ if (! JUMP_P (curr_insn)
+ && inherit_reload_reg (true, false, dst_regno, cl,
+ curr_insn, next_usage_insns))
change_p = true;
/* Invalidate. */
usage_insns[dst_regno].check = 0;
@@ -4425,9 +4426,11 @@ inherit_in_ebb (rtx head, rtx tail)
/* Invalidate. */
usage_insns[dst_regno].check = 0;
}
- for (i = 0; i < to_inherit_num; i++)
- if (inherit_reload_reg (true, false, to_inherit[i].regno, ALL_REGS,
- curr_insn, to_inherit[i].insns))
+ if (! JUMP_P (curr_insn))
+ for (i = 0; i < to_inherit_num; i++)
+ if (inherit_reload_reg (true, false, to_inherit[i].regno,
+ ALL_REGS, curr_insn,
+ to_inherit[i].insns))
change_p = true;
if (CALL_P (curr_insn))
calls_num++;