re PR debug/65678 (internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:909)
2015-04-07 Vladimir Makarov <vmakarov@redhat.com> PR target/65678 * lra-remat.c (do_remat): Process input and non-input insn registers separately. From-SVN: r221901
This commit is contained in:
parent
e488c24ec0
commit
218823d74e
2 changed files with 19 additions and 10 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR target/65678
|
||||
* lra-remat.c (do_remat): Process input and non-input insn
|
||||
registers separately.
|
||||
|
||||
2015-04-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/65678
|
||||
|
|
|
@ -1234,22 +1234,25 @@ do_remat (void)
|
|||
for (i = 0; i < nregs; i++)
|
||||
CLEAR_HARD_REG_BIT (live_hard_regs, hard_regno + i);
|
||||
}
|
||||
else if (reg->type != OP_IN
|
||||
&& find_regno_note (insn, REG_UNUSED, reg->regno) == NULL)
|
||||
{
|
||||
if ((hard_regno = get_hard_regs (reg, nregs)) < 0)
|
||||
continue;
|
||||
for (i = 0; i < nregs; i++)
|
||||
SET_HARD_REG_BIT (live_hard_regs, hard_regno + i);
|
||||
}
|
||||
/* Process also hard regs (e.g. CC register) which are part
|
||||
of insn definition. */
|
||||
for (reg = static_id->hard_regs; reg != NULL; reg = reg->next)
|
||||
if (reg->type == OP_IN
|
||||
&& find_regno_note (insn, REG_DEAD, reg->regno) != NULL)
|
||||
CLEAR_HARD_REG_BIT (live_hard_regs, reg->regno);
|
||||
else if (reg->type != OP_IN
|
||||
&& find_regno_note (insn, REG_UNUSED, reg->regno) == NULL)
|
||||
/* Inputs have been processed, now process outputs. */
|
||||
for (reg = id->regs; reg != NULL; reg = reg->next)
|
||||
if (reg->type != OP_IN
|
||||
&& find_regno_note (insn, REG_UNUSED, reg->regno) == NULL)
|
||||
{
|
||||
if ((hard_regno = get_hard_regs (reg, nregs)) < 0)
|
||||
continue;
|
||||
for (i = 0; i < nregs; i++)
|
||||
SET_HARD_REG_BIT (live_hard_regs, hard_regno + i);
|
||||
}
|
||||
for (reg = static_id->hard_regs; reg != NULL; reg = reg->next)
|
||||
if (reg->type != OP_IN
|
||||
&& find_regno_note (insn, REG_UNUSED, reg->regno) == NULL)
|
||||
SET_HARD_REG_BIT (live_hard_regs, reg->regno);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue