i386.c (ix86_preferred_reload_class): Use IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
* config/i386/i386.c (ix86_preferred_reload_class): Use IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros. From-SVN: r236645
This commit is contained in:
parent
b556ea3b46
commit
4b63ff5894
2 changed files with 14 additions and 12 deletions
|
@ -124,8 +124,8 @@
|
||||||
2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
|
2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||||||
|
|
||||||
PR middle-end/71252
|
PR middle-end/71252
|
||||||
* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert after
|
* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
|
||||||
build_and_add_sum creates new use stmt.
|
after build_and_add_sum creates new use stmt.
|
||||||
|
|
||||||
2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
|
2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
|
||||||
|
|
||||||
|
@ -157,7 +157,8 @@
|
||||||
(add_to_ops_vec): Add stmt_to_insert.
|
(add_to_ops_vec): Add stmt_to_insert.
|
||||||
(add_repeat_to_ops_vec): Init stmt_to_insert.
|
(add_repeat_to_ops_vec): Init stmt_to_insert.
|
||||||
(insert_stmt_before_use): New.
|
(insert_stmt_before_use): New.
|
||||||
(transform_add_to_multiply): Remove mult_stmt insertion and add it to ops vector.
|
(transform_add_to_multiply): Remove mult_stmt insertion and add it
|
||||||
|
to ops vector.
|
||||||
(get_ops): Init stmt_to_insert.
|
(get_ops): Init stmt_to_insert.
|
||||||
(maybe_optimize_range_tests): Likewise.
|
(maybe_optimize_range_tests): Likewise.
|
||||||
(rewrite_expr_tree): Insert stmt_to_insert before use stmt.
|
(rewrite_expr_tree): Insert stmt_to_insert before use stmt.
|
||||||
|
@ -190,8 +191,8 @@
|
||||||
TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
|
TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
|
||||||
SSE_FLOAT_MODE_P macros.
|
SSE_FLOAT_MODE_P macros.
|
||||||
* config/i386/i386.c (ix86_preferred_reload_class): Use
|
* config/i386/i386.c (ix86_preferred_reload_class): Use
|
||||||
IS_STACK_MODE, INTEGER_CLASS_P and FLOAT_CLASS_P macros. Cleanup
|
IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
|
||||||
regclass processing for CONST_DOUBLE_P.
|
Cleanup regclass processing for CONST_DOUBLE_P.
|
||||||
(ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
|
(ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
|
||||||
(ix86_rtx_costs): Remove redundant TARGET_80387 check
|
(ix86_rtx_costs): Remove redundant TARGET_80387 check
|
||||||
with IS_STACK_MODE macro.
|
with IS_STACK_MODE macro.
|
||||||
|
|
|
@ -43334,16 +43334,17 @@ ix86_preferred_reload_class (rtx x, reg_class_t regclass)
|
||||||
(plus soft-fp const_int). Which can only be computed into general
|
(plus soft-fp const_int). Which can only be computed into general
|
||||||
regs. */
|
regs. */
|
||||||
if (GET_CODE (x) == PLUS)
|
if (GET_CODE (x) == PLUS)
|
||||||
return reg_class_subset_p (regclass, GENERAL_REGS) ? regclass : NO_REGS;
|
return INTEGER_CLASS_P (regclass) ? regclass : NO_REGS;
|
||||||
|
|
||||||
/* QImode constants are easy to load, but non-constant QImode data
|
/* QImode constants are easy to load, but non-constant QImode data
|
||||||
must go into Q_REGS. */
|
must go into Q_REGS. */
|
||||||
if (GET_MODE (x) == QImode && !CONSTANT_P (x))
|
if (GET_MODE (x) == QImode && !CONSTANT_P (x))
|
||||||
{
|
{
|
||||||
if (reg_class_subset_p (regclass, Q_REGS))
|
if (Q_CLASS_P (regclass))
|
||||||
return regclass;
|
return regclass;
|
||||||
if (reg_class_subset_p (Q_REGS, regclass))
|
else if (reg_class_subset_p (Q_REGS, regclass))
|
||||||
return Q_REGS;
|
return Q_REGS;
|
||||||
|
else
|
||||||
return NO_REGS;
|
return NO_REGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue