backport: sel-sched.c (mark_unavailable_hard_regs): Do not try to search available registers when failed to discover LHS register class.
Backport from mainline: 2010-01-14 Alexander Monakov <amonakov@ispras.ru> * sel-sched.c (mark_unavailable_hard_regs): Do not try to search available registers when failed to discover LHS register class. Fix indentation. Update comment. From-SVN: r163509
This commit is contained in:
parent
7bb3593c93
commit
2e84372e2f
|
@ -1,3 +1,12 @@
|
|||
2010-08-24 Andrey Belevantsev <abel@ispras.ru>
|
||||
|
||||
Backport from mainline:
|
||||
2010-01-14 Alexander Monakov <amonakov@ispras.ru>
|
||||
|
||||
* sel-sched.c (mark_unavailable_hard_regs): Do not try to search
|
||||
available registers when failed to discover LHS register class.
|
||||
Fix indentation. Update comment.
|
||||
|
||||
2010-08-24 Andrey Belevantsev <abel@ispras.ru>
|
||||
|
||||
Backport from mainline:
|
||||
|
|
|
@ -1228,19 +1228,19 @@ mark_unavailable_hard_regs (def_t def, struct reg_rename *reg_rename_p,
|
|||
if (!reload_completed && !HARD_REGISTER_NUM_P (regno))
|
||||
return;
|
||||
|
||||
mode = GET_MODE (orig_dest);
|
||||
if (reload_completed)
|
||||
cl = get_reg_class (def->orig_insn);
|
||||
|
||||
/* Stop when mode is not supported for renaming. Also can't proceed
|
||||
if the original register is one of the fixed_regs, global_regs or
|
||||
frame pointer. */
|
||||
if (fixed_regs[regno]
|
||||
/* Stop if the original register is one of the fixed_regs, global_regs or
|
||||
frame pointer, or we could not discover its class. */
|
||||
if (fixed_regs[regno]
|
||||
|| global_regs[regno]
|
||||
#if FRAME_POINTER_REGNUM != HARD_FRAME_POINTER_REGNUM
|
||||
|| (frame_pointer_needed && regno == HARD_FRAME_POINTER_REGNUM)
|
||||
|| (frame_pointer_needed && regno == HARD_FRAME_POINTER_REGNUM)
|
||||
#else
|
||||
|| (frame_pointer_needed && regno == FRAME_POINTER_REGNUM)
|
||||
|| (frame_pointer_needed && regno == FRAME_POINTER_REGNUM)
|
||||
#endif
|
||||
)
|
||||
|| (reload_completed && cl == NO_REGS))
|
||||
{
|
||||
SET_HARD_REG_SET (reg_rename_p->unavailable_hard_regs);
|
||||
|
||||
|
@ -1295,11 +1295,11 @@ mark_unavailable_hard_regs (def_t def, struct reg_rename *reg_rename_p,
|
|||
|
||||
/* Leave regs as 'available' only from the current
|
||||
register class. */
|
||||
cl = get_reg_class (def->orig_insn);
|
||||
gcc_assert (cl != NO_REGS);
|
||||
COPY_HARD_REG_SET (reg_rename_p->available_for_renaming,
|
||||
reg_class_contents[cl]);
|
||||
|
||||
mode = GET_MODE (orig_dest);
|
||||
|
||||
/* Leave only registers available for this mode. */
|
||||
if (!sel_hrd.regs_for_mode_ok[mode])
|
||||
init_regs_for_mode (mode);
|
||||
|
|
Loading…
Reference in New Issue