poly_int: tree-ssa-loop-ivopts.c:iv_use
commitcaf8edd600ce9a49ac38a9b92cffe8a2927944b6
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Dec 2017 07:02:36 +0000 (21 07:02 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Dec 2017 07:02:36 +0000 (21 07:02 +0000)
tree320bf9bcc39e950dd35fcd65beec033182129dbf
parent6e52842084089813ce8e3206e98906def5d36adb
poly_int: tree-ssa-loop-ivopts.c:iv_use

This patch makes ivopts handle polynomial address offsets
when recording potential IV uses.

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

gcc/
* tree-ssa-loop-ivopts.h (strip_offset): Return the offset as
poly_uint64_pod rather than an unsigned HOST_WIDE_INT.
* tree-loop-distribution.c (classify_builtin_st): Update accordingly.
* tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from
an unsigned HOST_WIDE_INT to a poly_uint64_pod.
(group_compare_offset): Update accordingly.
(split_small_address_groups_p): Likewise.
(record_use): Take addr_offset as a poly_uint64 rather than
an unsigned HOST_WIDE_INT.
(strip_offset): Return the offset as a poly_uint64 rather than
an unsigned HOST_WIDE_INT.
(record_group_use, split_address_groups): Track polynomial offsets.
(add_iv_candidate_for_use): Likewise.
(addr_offset_valid_p): Take the offset as a poly_int64 rather
than a HOST_WIDE_INT.
(strip_offset_1): Return the offset as a poly_int64 rather than
a HOST_WIDE_INT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255933 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/tree-loop-distribution.c
gcc/tree-ssa-loop-ivopts.c
gcc/tree-ssa-loop-ivopts.h