diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2018-01-12 14:48:53 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2018-01-12 14:48:53 +0000 |
commit | c0a465457beb663430257375ba529af74b0e4e56 (patch) | |
tree | 3a74cf9aad5bf2c03e60cea943ae51f379a4cefd /gcc/cp/expr.c | |
parent | cf736b092afeabe90680443794eb384a9f930cd5 (diff) | |
download | gcc-c0a465457beb663430257375ba529af74b0e4e56.zip gcc-c0a465457beb663430257375ba529af74b0e4e56.tar.gz gcc-c0a465457beb663430257375ba529af74b0e4e56.tar.bz2 |
Handle polynomial DR_INIT
The idea with the main 107-patch poly_int series (latterly 109-patch)
was to change the mode sizes and vector element counts to poly_int and
then propagate those changes as far as they needed to go to fix build
failures from incompatible types. This means that DR_INIT is now
constructed as a poly_int64:
poly_int64 pbytepos;
if (!multiple_p (pbitpos, BITS_PER_UNIT, &pbytepos))
{
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "failed: bit offset alignment.\n");
return false;
}
[...]
init = ssize_int (pbytepos);
This patch adjusts other references to DR_INIT accordingly. Unlike
the above, the adjustments weren't needed to avoid a build-time type
incompatibility, but they are needed to make the producer and consumers
of DR_INIT logically consistent.
2018-01-12 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest
rather than wi::to_widest for DR_INITs.
* tree-vect-data-refs.c (vect_find_same_alignment_drs): Use
wi::to_poly_offset rather than wi::to_offset for DR_INIT.
(vect_analyze_data_ref_accesses): Require both DR_INITs to be
INTEGER_CSTs.
(vect_analyze_group_access_1): Note that here.
From-SVN: r256587
Diffstat (limited to 'gcc/cp/expr.c')
0 files changed, 0 insertions, 0 deletions