mirror of git://gcc.gnu.org/git/gcc.git
lra-constrints.c (process_alt_operands): Remove non allocatable hard regs when considering ira_prohibited_class_mode_regs.
2014-12-17 Vladimir Makarov <vmakarov@redhat.com> * lra-constrints.c (process_alt_operands): Remove non allocatable hard regs when considering ira_prohibited_class_mode_regs. From-SVN: r218835
This commit is contained in:
parent
f4e2df8970
commit
cdfc4dcf48
|
|
@ -1,3 +1,8 @@
|
||||||
|
2014-12-17 Vladimir Makarov <vmakarov@redhat.com>
|
||||||
|
|
||||||
|
* lra-constrints.c (process_alt_operands): Remove non allocatable
|
||||||
|
hard regs when considering ira_prohibited_class_mode_regs.
|
||||||
|
|
||||||
2014-12-17 Jan Hubicka <hubicka@ucw.cz>
|
2014-12-17 Jan Hubicka <hubicka@ucw.cz>
|
||||||
|
|
||||||
* sreal.h (sreal::normalize): Implement inline.
|
* sreal.h (sreal::normalize): Implement inline.
|
||||||
|
|
|
||||||
|
|
@ -2280,22 +2280,28 @@ process_alt_operands (int only_alternative)
|
||||||
not hold the mode value. */
|
not hold the mode value. */
|
||||||
&& ! HARD_REGNO_MODE_OK (ira_class_hard_regs
|
&& ! HARD_REGNO_MODE_OK (ira_class_hard_regs
|
||||||
[this_alternative][0],
|
[this_alternative][0],
|
||||||
GET_MODE (*curr_id->operand_loc[nop]))
|
GET_MODE (*curr_id->operand_loc[nop])))
|
||||||
|
{
|
||||||
|
HARD_REG_SET temp;
|
||||||
|
|
||||||
|
COPY_HARD_REG_SET (temp, this_alternative_set);
|
||||||
|
AND_COMPL_HARD_REG_SET (temp, lra_no_alloc_regs);
|
||||||
/* The above condition is not enough as the first
|
/* The above condition is not enough as the first
|
||||||
reg in ira_class_hard_regs can be not aligned for
|
reg in ira_class_hard_regs can be not aligned for
|
||||||
multi-words mode values. */
|
multi-words mode values. */
|
||||||
&& hard_reg_set_subset_p (this_alternative_set,
|
if (hard_reg_set_subset_p (temp,
|
||||||
ira_prohibited_class_mode_regs
|
ira_prohibited_class_mode_regs
|
||||||
[this_alternative]
|
[this_alternative]
|
||||||
[GET_MODE (*curr_id->operand_loc[nop])]))
|
[GET_MODE (*curr_id->operand_loc[nop])]))
|
||||||
{
|
{
|
||||||
if (lra_dump_file != NULL)
|
if (lra_dump_file != NULL)
|
||||||
fprintf
|
fprintf
|
||||||
(lra_dump_file,
|
(lra_dump_file,
|
||||||
" alt=%d: reload pseudo for op %d "
|
" alt=%d: reload pseudo for op %d "
|
||||||
" can not hold the mode value -- refuse\n",
|
" can not hold the mode value -- refuse\n",
|
||||||
nalt, nop);
|
nalt, nop);
|
||||||
goto fail;
|
goto fail;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check strong discouragement of reload of non-constant
|
/* Check strong discouragement of reload of non-constant
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue