aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-predcom.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-01-12 14:48:53 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-01-12 14:48:53 +0000
commitc0a465457beb663430257375ba529af74b0e4e56 (patch)
tree3a74cf9aad5bf2c03e60cea943ae51f379a4cefd /gcc/tree-predcom.c
parentcf736b092afeabe90680443794eb384a9f930cd5 (diff)
downloadgcc-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/tree-predcom.c')
-rw-r--r--gcc/tree-predcom.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index 0fe46f0..2bde732 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -680,7 +680,7 @@ aff_combination_dr_offset (struct data_reference *dr, aff_tree *offset)
tree_to_aff_combination_expand (DR_OFFSET (dr), type, offset,
&name_expansions);
- aff_combination_const (&delta, type, wi::to_widest (DR_INIT (dr)));
+ aff_combination_const (&delta, type, wi::to_poly_widest (DR_INIT (dr)));
aff_combination_add (offset, &delta);
}