diff options
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/tree-affine.c | 2 | ||||
-rw-r--r-- | gcc/tree-affine.h | 2 | ||||
-rw-r--r-- | gcc/tree-data-ref.c | 2 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-im.c | 2 |
5 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a60b00..70e8c1a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -2,6 +2,16 @@ Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> + * tree-affine.h (get_inner_reference_aff): Return the size as a + poly_widest_int. + * tree-affine.c (get_inner_reference_aff): Likewise. + * tree-data-ref.c (dr_may_alias_p): Update accordingly. + * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise. + +2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> + Alan Hayward <alan.hayward@arm.com> + David Sherwood <david.sherwood@arm.com> + * fold-const.c (pointer_may_wrap_p): Take the offset as a HOST_WIDE_INT rather than a poly_int64. diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c index 3869b0b..5c6bb7d 100644 --- a/gcc/tree-affine.c +++ b/gcc/tree-affine.c @@ -927,7 +927,7 @@ debug_aff (aff_tree *val) which REF refers. */ tree -get_inner_reference_aff (tree ref, aff_tree *addr, widest_int *size) +get_inner_reference_aff (tree ref, aff_tree *addr, poly_widest_int *size) { HOST_WIDE_INT bitsize, bitpos; tree toff; diff --git a/gcc/tree-affine.h b/gcc/tree-affine.h index d6802eb..d2140b7 100644 --- a/gcc/tree-affine.h +++ b/gcc/tree-affine.h @@ -80,7 +80,7 @@ bool aff_combination_constant_multiple_p (aff_tree *, aff_tree *, void aff_combination_expand (aff_tree *, hash_map<tree, name_expansion *> **); void tree_to_aff_combination_expand (tree, tree, aff_tree *, hash_map<tree, name_expansion *> **); -tree get_inner_reference_aff (tree, aff_tree *, widest_int *); +tree get_inner_reference_aff (tree, aff_tree *, poly_widest_int *); void free_affine_expand_cache (hash_map<tree, name_expansion *> **); bool aff_comb_cannot_overlap_p (aff_tree *, const poly_widest_int &, const poly_widest_int &); diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c index 50e11f5..4b805aa 100644 --- a/gcc/tree-data-ref.c +++ b/gcc/tree-data-ref.c @@ -2134,7 +2134,7 @@ dr_may_alias_p (const struct data_reference *a, const struct data_reference *b, if (!loop_nest) { aff_tree off1, off2; - widest_int size1, size2; + poly_widest_int size1, size2; get_inner_reference_aff (DR_REF (a), &off1, &size1); get_inner_reference_aff (DR_REF (b), &off2, &size2); aff_combination_scale (&off1, -1); diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index e0e1556..e62759b 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -1581,7 +1581,7 @@ mem_refs_may_alias_p (im_mem_ref *mem1, im_mem_ref *mem2, /* Perform BASE + OFFSET analysis -- if MEM1 and MEM2 are based on the same object and their offset differ in such a way that the locations cannot overlap, then they cannot alias. */ - widest_int size1, size2; + poly_widest_int size1, size2; aff_tree off1, off2; /* Perform basic offset and type-based disambiguation. */ |