poly_int: symbolic_number
authorRichard Sandiford <richard.sandiford@linaro.org>
Wed, 20 Dec 2017 12:55:57 +0000 (12:55 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 20 Dec 2017 12:55:57 +0000 (12:55 +0000)
commit4a022c701b1dca1bfc3d73dc82dd5858525876ef
treeb5141fcb9c93c0793610d79602133e6aa7a1ff4c
parentcc8bea091633989bef6d665c40193a9e255ceb81
poly_int: symbolic_number

This patch changes symbol_number::bytepos from a HOST_WIDE_INT
to a poly_int64.  perform_symbolic_merge can cope with symbolic
offsets as long as the difference between the two offsets is
constant.  (This could happen for a constant-sized field that
occurs at a variable offset, for example.)

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

gcc/
* gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from
HOST_WIDE_INT to poly_int64_pod.
(perform_symbolic_merge): Update accordingly.
(bswap_replace): Likewise.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r255889
gcc/ChangeLog
gcc/gimple-ssa-store-merging.c