poly_int: create_integer_operand
authorRichard Sandiford <richard.sandiford@linaro.org>
Wed, 20 Dec 2017 12:52:04 +0000 (12:52 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 20 Dec 2017 12:52:04 +0000 (12:52 +0000)
commitf8832fe1a7611c0458ebf45140c099eb7bf5d0c8
tree454adbe03c8aa8c6dd94e3a936168631193be885
parentdc3f38050535e8904dce2fd02c6efb6cf91eea3d
poly_int: create_integer_operand

This patch generalises create_integer_operand so that it accepts
poly_int64s rather than HOST_WIDE_INTs.

2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* optabs.h (expand_operand): Add an int_value field.
(create_expand_operand): Add an int_value parameter and use it
to initialize the new expand_operand field.
(create_integer_operand): Replace with a declaration of a function
that accepts poly_int64s.  Move the implementation to...
* optabs.c (create_integer_operand): ...here.
(maybe_legitimize_operand): For EXPAND_INTEGER, check whether
the mode preserves the value of int_value, instead of calling
const_int_operand on the rtx.  Use gen_int_mode to generate
the new rtx.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r255865
gcc/ChangeLog
gcc/optabs.c
gcc/optabs.h