diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-12-21 06:58:00 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2017-12-21 06:58:00 +0000 |
commit | 0cb78959893b418d0e81d62b22e450a09a7ef958 (patch) | |
tree | 229b864810d8ff93f56790e4272a2a34a5fa0039 /gcc/reload1.c | |
parent | f37fac2b74df114c5b3e9c8a3be2cad9acd3f4ca (diff) | |
download | gcc-0cb78959893b418d0e81d62b22e450a09a7ef958.zip gcc-0cb78959893b418d0e81d62b22e450a09a7ef958.tar.gz gcc-0cb78959893b418d0e81d62b22e450a09a7ef958.tar.bz2 |
poly_int: reload.c
This patch makes a few small poly_int64 changes to reload.c,
such as in the "decomposition" structure. In practice, any
port with polynomial-sized modes should be using LRA rather
than reload, but it's easier to convert reload anyway than
to sprinkle to_constants everywhere.
2017-12-21 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
gcc/
* reload.h (reload::inc): Change from an int to a poly_int64_pod.
* reload.c (combine_reloads, debug_reload_to_stream): Likewise.
(decomposition): Change start and end from HOST_WIDE_INT
to poly_int64_pod.
(decompose, immune_p): Update accordingly.
(find_inc_amount): Return a poly_int64 rather than an int.
* reload1.c (inc_for_reload): Take the inc_amount as a poly_int64
rather than an int.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r255915
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index f17edda..9557e3d 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -398,7 +398,7 @@ static void emit_reload_insns (struct insn_chain *); static void delete_output_reload (rtx_insn *, int, int, rtx); static void delete_address_reloads (rtx_insn *, rtx_insn *); static void delete_address_reloads_1 (rtx_insn *, rtx, rtx_insn *); -static void inc_for_reload (rtx, rtx, rtx, int); +static void inc_for_reload (rtx, rtx, rtx, poly_int64); static void add_auto_inc_notes (rtx_insn *, rtx); static void substitute (rtx *, const_rtx, rtx); static bool gen_reload_chain_without_interm_reg_p (int, int); @@ -9075,7 +9075,7 @@ delete_address_reloads_1 (rtx_insn *dead_insn, rtx x, rtx_insn *current_insn) This cannot be deduced from VALUE. */ static void -inc_for_reload (rtx reloadreg, rtx in, rtx value, int inc_amount) +inc_for_reload (rtx reloadreg, rtx in, rtx value, poly_int64 inc_amount) { /* REG or MEM to be copied and incremented. */ rtx incloc = find_replacement (&XEXP (value, 0)); @@ -9105,7 +9105,7 @@ inc_for_reload (rtx reloadreg, rtx in, rtx value, int inc_amount) if (GET_CODE (value) == PRE_DEC || GET_CODE (value) == POST_DEC) inc_amount = -inc_amount; - inc = GEN_INT (inc_amount); + inc = gen_int_mode (inc_amount, Pmode); } /* If this is post-increment, first copy the location to the reload reg. */ |