aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-data-ref.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-data-ref.h')
-rw-r--r--gcc/tree-data-ref.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/gcc/tree-data-ref.h b/gcc/tree-data-ref.h
index 6df38a5..63094a7 100644
--- a/gcc/tree-data-ref.h
+++ b/gcc/tree-data-ref.h
@@ -203,11 +203,20 @@ typedef struct data_reference *data_reference_p;
struct dr_with_seg_len
{
- dr_with_seg_len (data_reference_p d, tree len)
- : dr (d), seg_len (len) {}
+ dr_with_seg_len (data_reference_p d, tree len, unsigned HOST_WIDE_INT size,
+ unsigned int a)
+ : dr (d), seg_len (len), access_size (size), align (a) {}
data_reference_p dr;
+ /* The offset of the last access that needs to be checked minus
+ the offset of the first. */
tree seg_len;
+ /* A value that, when added to abs (SEG_LEN), gives the total number of
+ bytes in the segment. */
+ poly_uint64 access_size;
+ /* The minimum common alignment of DR's start address, SEG_LEN and
+ ACCESS_SIZE. */
+ unsigned int align;
};
/* This struct contains two dr_with_seg_len objects with aliasing data
@@ -475,6 +484,10 @@ extern void prune_runtime_alias_test_list (vec<dr_with_seg_len_pair_t> *,
poly_uint64);
extern void create_runtime_alias_checks (struct loop *,
vec<dr_with_seg_len_pair_t> *, tree*);
+extern tree dr_direction_indicator (struct data_reference *);
+extern tree dr_zero_step_indicator (struct data_reference *);
+extern bool dr_known_forward_stride_p (struct data_reference *);
+
/* Return true when the base objects of data references A and B are
the same memory object. */